環境搭建:python2.7+uiautomator+Android+windows 64 + PIL

背景:前幾天,搭建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測試

 

問題一:項目使用Python 2.7,本機已安裝Python 3.5,pycharm安裝插件,顯示pip版本不對

pycharm使用本機默認python版本,修改本機環境變量Path,指定Python 2.7的安裝地址;

直接使用命令行安裝 ,安裝成功後pycharm對應python配置下就能看到對應已安裝package(package與Python interpreter對應)。

py -2 -m pip install uiautimator

 

 問題二:Python 2.7 安裝image,依賴於Django,安裝過程報IOError

網搜,Django包也存在和python版本的兼容問題,默認安裝的2.0不適用於Python 2.7,安裝時須要指定版本號,具體可查閱 https://pypi.python.org/pypi/Django/2.0 

 

執行命令

py -2 -m pip install Django==1.11.6

 

問題三:windows 64 Python 2.7安裝image,依賴安裝Pillow,報錯pip-build-sl1urw\pillow failed with error code 1,給出提示連接

具體報錯以下:

連接中提示:

不確認是否有安裝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的使用,至此圖像識別基礎環境都安裝成功。

問題四:python命令行中執行uiautomator中基本命令,d.info 或 d(text="Settings").click(),無響應,raise IOError("RPC server not started!")

運行項目文件,手機未響應,直接使用uiautomator命令,d.info後長時間無響應,殺進程後無任何信息,須要持續等待,出現了錯誤信息raise IOError("RPC server not started!")

git上有對應FAQ(有錯誤信息後搜索到,仍是要等待,不要無反應就急着殺進程):

 

問題五:5. Run the jsonrcp server on Android device   gradlew cC過程卡在  > Building 96% > :app:connectedDebugAndroidTest

下載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

輸出結果

 

完美~

相關文章
相關標籤/搜索