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,再重新更新下就可以了!!



