• uiautomator2使用(python)


    uiautomator2 打开app也比appium简单,直接用app_start方法就行了

    d=ut.connect('127.0.0.1:62001')  # 连接设备
    print(d.device_info)
    d.app_start('com.ss.android.article.lite','com.ss.android.article.lite.activity.SplashActivity') #打开app

    在weditor里查到元素定位,然后用d()就可以了,比appium里的find_element_by_xpath这种简单

    例子:

    import uiautomator2 as ut
    import time
    d=ut.connect('127.0.0.1:62001')
    
    print(d.device_info)
    d.app_start('com.ss.android.article.lite','com.ss.android.article.lite.activity.SplashActivity') #打开app
    d.implicitly_wait(10)
    d(text='热榜').click()
    d(text='未登录').click()
    d(text="登录").click()
    d(text="手机号").send_keys('13409012321')
    d(text='请输入验证码').send_keys('123456')
    d(text='进入').click()

    常用的 UiAutomator2 定位方式有 6 种,分别是:

    • ID 定位

    • Text 文本定位

    • Description 定位

    • ClassName 定位

    • Xpath 定位

    • 组合定位

    搜索

    UiAutomator2 中提供了 send_keys() 方法,用于向输入框中设置文本

    注意:参数 clear 如果设置为 True,则在输入内容之前,会先清空输入框,默认值为 False

    # 输入内容
    device.send_keys("Python", clear=True)
    
    # 点击搜索按钮
    device(text="搜索").click()

    滑动

    UiAutomator2 提供了两个方法用于滑动界面,分别是:

    • swipe_ext( 滑动方向 )

    • swipe( 开始 x 轴,开始 y 轴,结束 x 轴,结束 y 轴值,滑动时间 )

    经过测试发现,滑动操作,swipe_ext() 使用效果不稳定,建议使用 swipe() 函数

    for i in range(5):
        print('滑动一次')
        swipe_custom(device, 0.5, 0.8, 0.5, 0.2, 1.2)

    关闭应用

    在完成自动化操作后,就可以调用 app_stop() 方法强制关闭应用

    # 停止App
    device.app_stop(PACKAGE_NAME)

    可以在每次操作完,使用 UiAutomator2 提供的方法 app_clear() 清除 App 数据

    # 清除App数据
    # device.app_clear(PACKAGE_NAME)

    通过上面的实例,我们发现 UiAutomator2 相比 Appium,语法更简洁易懂,代码量也少了很多

    但是由于 Uiautomator2 仅适用于 Android 端,Appium 拥有多语言、跨平台的特性,企业级自动化一般会选择后者


    链接:https://www.jianshu.com/p/94d05873065a



  • 相关阅读:
    Android两级嵌套ListView滑动问题的解决
    关于Android适配华为等带有底部虚拟按键的解决方案
    更加成熟的领导力素质和学习敏感度
    完美解决ScollView内嵌ListView的问题
    Gson序列化问题导致的内存溢出,tip:Background sticky concurrent mark sweep GC freed
    从功能实现到实现设计
    iOS面试题汇总
    2017计算机专业大学排名
    Buffer.from()
    Buffer.isBuffer()详解
  • 原文地址:https://www.cnblogs.com/may18/p/14580946.html
Copyright © 2020-2023  润新知