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



posted @ 2021-03-26 10:36  yimu-yimu  阅读(1417)  评论(0编辑  收藏  举报