uiautomator2 使用
Posted helloterry1987
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uiautomator2 使用相关的知识,希望对你有一定的参考价值。
初始化
部署相关的守护进程。
电脑连接上一个手机或多个手机, 确保adb已经添加到环境变量中,执行下面的命令会自动安装本库所需要的设备端程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch
python -m uiautomator2 init
安装完成,设备上会多一个uiautomator的应用(ATX)。打开页面如下:
测试
编写以下脚本进行验证:
python import uiautomator2 as u2 d = u2.connect(‘10.59.8.231‘)//查看手机连接IP地址 print(d.info) //打印手机信息 exit() //退出python
运行结果:
定位元素:
我们可以借助android SDK自的uiautomatorviewer查看元素,这就要求手机必须以USB的方式连接PC,我前面使用的是WIFI连接进行连接的。所以,openatx提供了另外一个工具weditor 来解决这个问题。
GitHub地址:https://github.com/openatx/weditor
1、安装:
pip install --pre --upgrade weditor
安装成功如下:
2、使用:
python -m weditor
默认会自动通过浏览器打开页面:http://localhost:17310/
连接方式:
1、在页面左上角选择Android,输入设备IP(10.59.8.231),点击Connect按钮。
2、在页面左上角选择Android,输入设备序列号(adb devices获取序列号),点击Connect按钮。
当我们操作完手机后,可以点击“Dump Hierarchy”按钮进行刷新,从而保持与设备上的界面保持同步。weditor 还可以帮我们生成代码。待研究~
小结:这里基本不会有什么坑,按照以上流程会ok~
编写测试脚本
这里直接从这里拿过来,后面待细细研究
import uiautomator2 as u2 from time import sleep d = u2.connect(‘192.168.31.234‘) # 启动App d.app_start("com.meizu.mzbbs") # 搜索 d(resourceId="com.meizu.mzbbs:id/j0").click() # 输入关键字 d(resourceId="com.meizu.mzbbs:id/p9").set_text("flyme") # 搜索按钮 d(resourceId="com.meizu.mzbbs:id/tp").click() sleep(2) # 停止app d.app_stop("com.meizu.mzbbs")
app_start()和app_stop()用于启动和停止应用。
常用的定位方式:
- ResourceId定位:
- d(resourceId="com.meizu.mzbbs:id/tp").click()
- Text定位:
- d(text="精选").click()
- Description定位:
- d(description="..").click()
- ClassName定位:
- d(className="android.widget.TextView").click()
以上是关于uiautomator2 使用的主要内容,如果未能解决你的问题,请参考以下文章
手机APP自动化之uiautomator2 +python3 UI自动化