Mac系统下安装uiaotumator2:
参考网址:《uiautomator2》以及参考github官方文档
注意:下面有坑,如果你没有下面的问题请直接跳转到
1、安装uiaotumator2命令:
pip install --upgrade --pre uiautomator2
提示报错:
Could not install packages due to an EnvironmentError: [Errno 1] Operation not permitted: '/usr/local/bin/chardetect'
经查询用下面的指令安装:
pip install --user --upgrade --pre uiautomator2
提示以上黄色信息是建议对以上几个执行程序设置环境路径设置,而这几个执行程序都在AppData这个隐藏路径下,需要手动在文件路径栏输入回车
上文解决问题参考【网址】
2、
Deploy associated daemons to a device 电脑连接上一个手机或多个手机, 确保adb已经添加到环境变量中,执行下面的命令会自动安装本库所需要的设备端程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch
# init 所有的已经连接到电脑的设备
python -m uiautomator2 init
安装到这块的时候,发现个严重的问题:
安装失败,查看得知之前安装的时候,pip安装uiautomator2时安装在python2.7默认版本下了。
有趣的是python版本是3.6.1,但是pip默认为2.7版本,这个就懵逼了。
后来经过查询得知,下面为解决办法:
《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》
原因是我的PATH环境变量名字写错了,如下操作解决办法:
#打开.bash_profile文件:
open -e .bash_profile
我之前默认的PATH路径为,红色为出问题地方:
export PATH=${PATH}:/Users/zhangc/.pyenv/versions/3.6.1/bin
修改为:
export PATH=/Users/zhangc/.pyenv/versions/3.6.1/bin:$PATH
把PATH放在后面,具体为什么就不知道了。
保存.bash_profile文件:command+S。
最后让PATH变量生效命令:
source .bash_profile
再输入命令:
pip --version 或者 pip -V
显示正确了:
pip 9.0.1 from /Users/zhangc/.pyenv/versions/3.6.1/lib/python3.6/site-packages (python 3.6)
Requirement already satisfied:提示已经安装在环境下了。
三、安装adb
因为我的Mac有adb所以就不用安装了,具体安装步骤参考《Mac 安装adb 以及基本的命令》
但是我需要设备号信息,命令为:
adb devices 输出设备号信息
四、安装设备端程序
# init 所有的已经连接到电脑的设备
python -m uiautomator2 init
输出success表示成功,如下图:
五、Install weditor(UI Inspector)
因为uiautomator是独占资源,所以当atx运行的时候uiautomatorviewer是不能用的,为了减少atx频繁的启停,我们开发了基于浏览器技术的weditor UI查看器。https://github.com/openatx/weditor
安装命令方法:
pip install --pre -U weditor
Successfully,提示安装成功,如下图:
六、启动weditor
命令行启动:
python -m weditor
会自动打开浏览器,输入设备的ip或者序列号,点击Connect即可。
具体参考文章:浅谈自动化测试工具python-uiautomator2
自动打开浏览器:
输入adb的设备号,点击【Connect】按钮连接,并按【Reload】蓝色按钮刷新手机页面,如下图
至此uiaotumator2安装成功!!!
====================================
但是经过一段时间不用的时候再打开发现,报错了:
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer'))
解决办法如下:
pc命令行里再执行一次:python -m uiautomator2 init,再重新更新下就可以了!!