1、介绍
链接:https://github.com/openatx/uiautomator2#installation
uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库。其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点:1. 测试脚本只能使用Java语言 2. 测试脚本必须每次被上传到设备上运行。 我们希望测试能够用一个更脚本化的语言,例如Python编写,同时可以每次所见即所得地修改测试、运行测试。这里要非常感谢 Xiaocong He (@xiaocong),他将这个想法实现了出来(见xiaocong/uiautomator),原理是在手机上运行了一个http服务器,将uiautomator中的功能开放出来,然后再将这些http接口,封装成Python库。 我们的uiautomator2项目是对xiaocong/uiautomator的增强,主要有以下部分:
- 设备和开发机可以脱离数据线,通过WiFi互联(基于atx-agent)
- 集成了openstf/minicap加快截图速度
- 集成了openstf/minitouch达到精确实时控制设备
- 修复了xiaocong/uiautomator经常性退出的问题
- 代码进行了重构和精简,方便维护
2、安装
参考上述链接,过程中也遇到一些问题,记录如下。
1、安装pip :
sudo easy_install pip
2、安装uiautomator2
pip install --user --upgrade --pre uiautomator2
注意要加--user,不然会报错
3、安装pillow
pip install pillow
4、自动安装本库所需要的设备端程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch
python -m uiautomator2 init
5、因为uiautomator是独占资源,所以当atx运行的时候uiautomatorviewer是不能用的,为了减少atx频繁的启停,有大神开发了基于浏览器技术的weditor UI查看器。https://github.com/openatx/weditor
pip install --user --pre -U weditor