背景:前幾天,搭建Android端自動化UI測試環境,識別結果圖片,記錄問題。python
項目使用框架:android
https://github.com/xiaocong/uiautomator (做者博客:http://xiaocong.github.io/)git
機器:windows 64位github
主要遇到問題:json
1. 項目使用Python 2.7,本機已安裝Python 3.5,pycharm安裝插件,顯示pip版本不對windows
2. Python 2.7 安裝image,依賴於Django,安裝過程報IOErrorapp
3. windows 64 Python 2.7安裝image,依賴安裝Pillow,報錯pip-build-sl1urw\pillow failed with error code 1,給出提示連接框架
4. python命令行中執行uiautomator中基本命令,d.info 或 d(text="Settings").click(),無響應tcp
5. Run the jsonrcp server on Android device gradlew cC過程卡在 > Building 96% > :app:connectedDebugAndroidTest測試
pycharm使用本機默認python版本,修改本機環境變量Path,指定Python 2.7的安裝地址;
直接使用命令行安裝 ,安裝成功後pycharm對應python配置下就能看到對應已安裝package(package與Python interpreter對應)。
py -2 -m pip install uiautimator
網搜,Django包也存在和python版本的兼容問題,默認安裝的2.0不適用於Python 2.7,安裝時須要指定版本號,具體可查閱 https://pypi.python.org/pypi/Django/2.0
執行命令
py -2 -m pip install Django==1.11.6
具體報錯以下:
連接中提示:
不確認是否有安裝PIL,嘗試刪除PIL
py -2 -m pip uninstall PIL #顯示未安裝PIL
瞭解項目使用,同事明確,須要的是PIL,image非必須,轉而安裝PIL
PIL官網(http://www.pythonware.com/products/pil/)下載python 2.7對應exe,執行,報錯無Python 2.7,命令行執行python,版本已區別出python 2.7 [感謝:http://blog.csdn.net/boycycyzero/article/details/42647161]
驗證Pillow的使用,至此圖像識別基礎環境都安裝成功。
運行項目文件,手機未響應,直接使用uiautomator命令,d.info後長時間無響應,殺進程後無任何信息,須要持續等待,出現了錯誤信息raise IOError("RPC server not started!")
git上有對應FAQ(有錯誤信息後搜索到,仍是要等待,不要無反應就急着殺進程):
下載https://github.com/xiaocong/android-uiautomator-server#build 源碼後,解壓進入目錄,執行
在第三步卡住
網上已有issue:https://github.com/xiaocong/android-uiautomator-server/issues/11
解決辦法:https://github.com/xiaocong/android-uiautomator-server/wiki/Force-Start-Json-Server
Note that gradlew cC will get stuck at 96% or so but the server has started. Go and try it in python, everything should be working.
雖然卡着,它其實已經起來了
直接執行第四步和uiautomator命令
adb forward tcp:9008 tcp:9008
python
>>> from uiautomator import device as d
>>> d.info
輸出結果
完美~