一个好用的移动端自动化框架-uiautomator2
Posted 我曾把春天丢了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个好用的移动端自动化框架-uiautomator2相关的知识,希望对你有一定的参考价值。
简介(百度的):
uiautomator2 是一个可以使用Python对android设备进行UI自动化的库。其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作
优缺点:
优点:
1、环境搭建简单
2、元素查找有专用的weditor,相比其他简单明了
3、代码语法简单,容易学习理解
4、相比appium不用启动客户端
5、可以使用wifi以及usb连接
缺点:
1、兼容性相对较差
2、功能相比appium较缺少
3、设备上面必须安装一些调试app,新设备就必须去连接usb然后去init安装,比较不省心
安装,安装这一块就不多bb了:
装一下uiautomator2的包
pip3 install --pre -U uiautomator2
usb连接手机装一下依赖的包:
python3 -m uiautomator2 init
装完之后,开始启动撸码
import uiautomator2 ## wifil连接 d = uiautomator2.connect_wifi() ## 直接连接 d1 = uiautomator2.connect() ## usb连接 d2 = uiautomator2.connect_usb() ## adb、wifi连接 d3 = uiautomator2.connect_adb_wifi()
这些就是直接启动,然后就可以直接开始android的ui自动化了
下面附一些基础语法
ResourceId定位: d(resourceId="com.meizu.mzbbs:id/tp").click() Text定位: d(text="精选").click() Description定位: d(description="..").click() ClassName定位: d(className="android.widget.TextView").click() import uiautomator2 as u2 from time import sleep ##使用本地wifi地址 d = u2.connect(‘192.168.31.234‘) ##等待元素出现 # d(text=‘settings‘).wait(timeout=10.0) ##使用设备id控制 # d = u2.connect_usb(‘设备id‘) # 启动App d.app_start("com.meizu.mzbbs") # 搜索 d(resourceId="com.meizu.mzbbs:id/j0").click() # 停止app d.app_stop("com.meizu.mzbbs") 中文字符的输入 如果可以定位到元素,直接通过set_text就可以输入中文 d(text="Settings").set_text("你好") 如果定位不到元素需要使用send_keys方法,以及切换输入法 d.set_fastinput_ime(True) d.send_keys("你好 Hello") d.set_fastinput_ime(False) # 输入法用完关掉 截图:d.screenshot("home.jpg") 获取图层信息:xml = d.dump_hierarchy() ## 按住滑动 u.swipe_points([(0.235, 0.456), (0.503, 0.449), (0.509, 0.601), (0.777, 0.603), (0.771, 0.763), (0.222, 0.75)], 0.2)
以上是关于一个好用的移动端自动化框架-uiautomator2的主要内容,如果未能解决你的问题,请参考以下文章