笔记_自动化工具uiautomator2安装和使用教程
1、参考链接
GitHub: https://github.com/openatx/uiautomator2
2、工作原理:
三、uiautomator2工作原理:
如图所示,python-uiautomator2主要分为两个部分,python客户端,移动设备
python端: 运行脚本,并向移动设备发送HTTP请求
移动设备:移动设备上运行了封装了uiautomator2的HTTP服务,解析收到的请求,并转化成uiautomator2的代码。
整个过程
在移动设备上安装
atx-agent
(守护进程), 随后atx-agent
启动uiautomator2服务(默认7912端口)进行监听在PC上编写测试脚本并执行(相当于发送HTTP请求到移动设备的server端)
移动设备通过WIFI或USB接收到PC上发来的HTTP请求,执行制定的操作
三、安装测试
第一步:
先准备一台(不要两台)开启了开发者选项
的安卓手机,连接上电脑,确保执行adb devices
可以看到连接上的设备。
运行
pip3 install -U uiautomator2
安装uiautomator2运行
python3 -m uiautomator2 init
安装包含httprpc服务的apk到手机+atx-agent, minicap, minitouch
第二步:
命令行运行python
打开python交互窗口。然后将下面的命令输入到窗口中。
import uiautomator2 as u2
d = u2.connect() # connect to device
print(d.info)
这时看到类似下面的输出,就可以正式开始用我们这个库了。因为这个库功能太多,后面还有很多的内容,需要慢慢去看 ....
{'currentPackageName': 'net.oneplus.launcher', 'displayHeight': 1920, 'displayRotation': 0, 'displaySizeDpX': 411, 'displaySizeDpY': 731, 'displayWidth': 1080, 'productName': 'OnePlus5', 'screenOn': True, 'sdkInt': 27, 'naturalOrientation': True}
四、应用及操作
调用uiautomator2的过程
配置手机设备参数,设置具体操作的是哪一台手机
抓取手机上应用的控件,制定对应的控件来进行操作
对抓取到的控件进行操作,比如点击、填写参数等。
配置手机设备参数
python-uiautomator2连接手机的方式有两种,一种是通过WIFI,另外一种是通过USB。两种方法各有优缺点。 WIFI最便利的地方要数可以不用连接数据线,USB则可以用在PC和手机网络不在一个网段用不了的情况。
使用WIFI连接
手机获取到手机的IP,并确保电脑可以PING通手机。手机的IP可以在设置-WIFI设置里面获取到。 比如手机的IP是
192.168.0.100
,连接设备的代码为import uiautomator2 as u2d = u2.connect('192.168.0.100')
使用USB连接
手机的序列号可以通过
adb devices
获取到,假设序列号是123456f
,连接代码为import uiautomator2 as u2d = u2.connect_usb('123456f')
抓取手机上应用的控件
安装方法: pip install --pre weditor
使用方法: 首先运行python -m weditor
,之后浏览器会自动打开一个网页 http://atx.open.netease.com
(注:这个网址仅提供一个前端,而python -mweditor
这个命令则本地开放了HTTP的接口,前端去跟本地的服务去通信)
定位方式
ResourceId定位:
d(resourceId="com.smartisanos.clock:id/text_stopwatch").click()
Text定位
d(text="秒表").click()
Description定位
d(description="..").click()
ClassName定位
d(className="android.widget.TextView").click()
项目实战
项目github下载链接
https://github.com/BoyYongXin/uiautomator2---LiZhiNews-master.git
以上是 笔记_自动化工具uiautomator2安装和使用教程 的全部内容, 来源链接: utcz.com/a/52223.html