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