版權聲明:允許轉載,但轉載必須保留原鏈接;請勿用作商業或者非法用途
此文章來源於項目官方公眾號:“AirtestProject”
前言
相信小伙伴們多少都會遇到想要修改Airtest源碼,方便自己腳本編寫的情況。這時,部分同學會立即去修改AirtestIDE文件夾下Airtest庫的.py文件(如下圖),其實這樣修改是無效的,並不會達到預期的效果。
正確的修改Airtest源碼的步驟是:
- 在本地安裝
python環境 - 安裝
Airtest - 安裝
Poco - 在本地的
Airtest庫中修改源碼
在本地安裝python環境
Airtest支持Python版本為2.7或者<=3.6,但是我們更推薦使用 Python3。如果你願意的話我們也同樣建議使用 virtualenv 等虛擬環境新建一個干凈的python環境。各個版本的python可以自行到python官網上下載安裝。
安裝Airtest
-
使用
pip安裝Airtest框架pip install airtest -
注意: 在
Mac/Linux系統下,需要手動賦予adb可執行權限,否則可能在執行腳本時遇到Permission denied的報錯:# mac系統 > cd {your_python_path}/site-packages/airtest/core/android/static/adb/mac # linux系統 > cd {your_python_path}/site-packages/airtest/core/android/static/adb/linux > chmod +x adb
-
若運行代碼時,在
cv2模塊報ImportError: DLL load failed:找不到指定模塊 的錯誤,有以下幾種解決方案:- 問題的根本原因應該是
DLL文件的缺失,我們將它們放入了IDE的目錄中,可以直接下載一個最新版本的AirtestIDE,在解壓后的目錄中找到api-ms-win-downlevel-shlwapi-l1-1-0.dll和IEShims.dll兩個DLL文件,將他們復制到C:\Windows\System32目錄,重新運行代碼即可解決 - 如果使用了
python3.7,請安裝Visual C++ redistributable 2015 - 如果使用的python版本低於3.7,請直接運行:
> pip uninstall opencv-contrib-python # 若以下安裝語句運行失敗,可以嘗試更新pip到最新版本后重試 > install opencv-contrib-python==3.2.0.7 若在win.py中import win32api時報DLL load failed,可以嘗試重新安裝pywin32模塊: pip uninstall pywin32 pip install pywin32==223
- 問題的根本原因應該是
安裝Poco
使用 pip 安裝poco框架 pip install pocoui,請注意庫的名稱為 pocoui,不是poco,請不要填錯。
如果你在命令行中使用pip list ,看到同時存在poco和pocoui兩個庫,請把poco卸載,因為pocoui才是正確的庫。
在本地的Airtest庫里面修改源碼
完成上述三步以后,其實就是在本地部署了一個python環境來使用airtest和poco。然后我們可以修改本地安裝的Airtest庫里面的源碼,使得修改生效。
舉個例子,打開你本地安裝的Airtest庫,找到Airtest>--airtest>--core目錄下的api.py文件,在touch方法里加一條代碼,如下:
那么你在命令行運行腳本的時候,如果腳本里面寫有touch語句,你在touch方法里面增加的print語句也會生效:
如果想要你修改的內容在IDE也生效的話,只需要將IDE的運行環境改成本地運行環境即可:
這時候IDE運行時,使用的Airtest庫就不是IDE自帶的Airtest庫,而是你在本地安裝的Airtest庫,運行一條touch語句,之前對touch方法的修改也會在IDE里面生效了:
