简介
uiautomator2是一个python库,用于Android的UI自动化测试,其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作
配置
python版本3.6+
android系统4.4+
安装教程
第一步使用 cmd命令行或pycharm终端 安装uiautomator2
pip install uiautomator2 -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 清华镜像地址
安装完成后可在命令行输入uiautomator2进行检查
![](https://img-blog.csdnimg.cn/img_convert/c3c841da74bf2744d2932a43b789269d.png)
下载完成
第二步 安装 atx-agent
前置条件
手机(模拟器)与电脑进行连接
手机(模拟器)开启开发者
adb devices命令可读取到手机
![](https://img-blog.csdnimg.cn/img_convert/303d404f4feb43fc303a398b60e420b7.png)
准备完毕
cmd命令行或pycharm终端输入命令 python -m uiautomator2 init
此步骤是在手机上安装atx-agent(可以理解为appium)
注: appium与atx-agent互不兼容(需卸载appium或atx-agent)
![](https://img-blog.csdnimg.cn/img_convert/56637751ea286b5f8e6becd5053eb3ce.png)
安装成功
第三步 安装weditor 此工具是帮助我们在进行自动化的时候识别界面元素
注: weditor最新版安装可能会出错所以指定版本安装
pip install -v weditor==0.6.4 -i https://pypi.douban.com/simple # 豆瓣镜像
安装完成后可在命令行输入weditor -help 检查
![](https://img-blog.csdnimg.cn/img_convert/845956b057b5d06de95935737432c53b.png)
安装完成
操作:在cmd命令行或pycharm终端 输入 python -m weditor 或者weditor 启动浏览器
如图:
![](https://img-blog.csdnimg.cn/img_convert/c1590f3ea220b5d47d8693e594e1c2b3.png)
打开网页 若电脑只连接一台手机点击 直接点击connect进行连接即可 若有多台设备则需要填写序列号或ip
如图:
![](https://img-blog.csdnimg.cn/img_convert/6b4bd9770cc18660fa861a60e663074d.png)
输入序列号后点击connect 等待界面右侧树叶变绿连接成功 点击Dump Hierarchy 刷新即可显示手机或模拟器当前界面
使用方法
import uiautomator2 as u2 # 导入uiautomator2
driver = u2.connect_usb('HYC5T19B11001155') # usb连接
'''常用操作'''
driver(text='测试1').click() # 点击文本为测试1的值
driver(resourceId='text').click() # 通过resourceId对text元素进行点击
driver(resourceId='text').send_keys('cedn') # 通过id为text的元素进行输入文本操作
driver.click(0.626, 0.138) # 坐标点击
driver(text='csdn').wait(exists=True) # 等待元素出现
driver(text='csdn').long_click(2) # 进行长按操作
''' 模拟键盘 '''
driver.press("home") # 点击home键
driver.press("back") # 点击back键
driver.press("left") # 点击左键
driver.press("right") # 点击右键
driver.press("up") # 点击上键
driver.press("down") # 点击下键
driver.press("center") # 点击选中
driver.press("menu") # 点击menu按键
driver.press("search") # 点击搜索按键
driver.press("enter") # 点击enter键
driver.press("delete") # 点击删除按键
driver.press("recent") # 点击近期活动按键
driver.press("volume_up") # 音量+
driver.press("volume_down") # 音量-
driver.press("volume_mute") # 静音
driver.press("camera") # 相机
driver.press("power") #电源键