1.ImportError: DLL load failed: 找不到指定模塊
常見的DLL報錯會出現在以下2種情況中:
① 在 cv2 模塊報 ImportError: DLL load failed: 找不到指定模塊 的錯:

根本原因應該是DLL文件的缺失,你可以直接下載一個最新版本的AirtestIDE,在解壓后的目錄中找到 api-ms-win-downlevel-shlwapi-l1-1-0.dll 和 IEShims.dll 兩個DLL文件(或者自行在網上搜索這倆個DLL文件也是可以的),然后將它們復制到 C:\Windows\System32 目錄,重新運行代碼即可解決。

② 若在 win.py 中 import win32api 時報 DLL load failed :
<Module>
import win32api
ImportError: DLL load failed: 找不到指定的程序。
建議您運行下列指令,更新為223版本的 pywin32:
pip uninstall pywin32
pip install pywin32==223
2. 各種常用的pip命令
① 安裝Airtest庫: pip install airtest
② 安裝poco庫: pip install pocoui
③ 更新Airtest: pip install -U airtest
④ 更新Poco: pip install -U pocoui
⑤ 卸載Airtest庫: pip uninstall airtest
特別注意:Poco依賴庫是 pocoui 而不是 poco,如果你發現你的環境里面同時存在 poco 和 pocoui ,請務必把 poco 卸載了,留下 pocoui即可。
另外,如果你的電腦同時安裝了 python3 和 python2 ,在不同python環境里面使用pip命令時可以使用如下方法:
# Python2 pip2 install XXX python2 -m pip install XXX # Python3 pip3 install XXX python3 -m pip install XXX
3.查詢Airtest版本號的方法
查詢本地環境中的Airtest版本可以使用如下倆種方法:
① 使用 pip list 命令,找到 Airtest 那一行查看。

② 使用 airtest version 命令,但注意該命令只對1.1.2以上的 Airtest 版本生效。

4.自定義截圖壓縮精度
當Airtest版本≥1.1.2時,我們可以自定義截圖精度:
① 在本地運行腳本時自定義:
# quality取值[1,99],airtest默認取10,希望獲得更高精度可以取值75 airtest run xxx --compress quality

② 在腳本中自定義(優先級高於在命令行自定義):
自定義全局的截圖壓縮精度:
import airtest.core.api import * ST.SNAPSHOT_QUALITY = xxx
自定義單張截圖的壓縮精度:
snapshot(quality=my_quality)
5.Airtest支持多設備運行嗎
Airtest支持 Android 和 iOS 的多設備運行,但是這些目前僅用在我們的收費的小型機櫃方案私有雲中,外放的開源版本可以自己實現。
另外,Airtest還支持Android設備的 多機協作功能 ,實操案例可以參考往期推文:“多機協作”--微信互加好友案例分析。
6.怎樣輸入隨機數字
首先我們要利用python的 random 函數創建出符合要求的隨機數;比如想要隨機輸入20-100的1個整數型隨機數:
import random r = random.randint(20,100)
然后使用 text 接口完成隨機數的輸入,但要注意的是,text 接口傳入的是一個字符串類型,所以把隨機數傳入 text 接口之前,要把剛才創建的隨機數轉化為字符串類型:
text(str(random.randint(20,100)))
這樣我們就可以完成輸入隨機數字的需求啦。
7.如何獲取節點的text屬性並打印
Poco提供了 get_text() 和 get_name() 等方法讓我們去讀取UI的屬性值,例如我們可以這樣獲取並打印下面這個節點的 text 屬性和 name 屬性:
a = poco(text="聯系人") print(a.get_text()) # 打印出:聯系人 print(a.get_name()) # 打印出:android.widget.TextView

8.模擬器勾選上連接參數之后還是連不上
之前跟大家強調過,連接模擬器的時候,我們需要勾選上一些備選的連接參數才能連接上模擬器,或者不讓模擬器黑屏。
比如連接雷電時需要勾選上 Use javacap,而連接夜神的時候需要勾選上 Use javacap 和 Use ADB orientation 這倆個選項。
但是在一些版本的模擬器中,即使勾選上了連接參數,仍然可能連接不上模擬器,並出現如下的報錯:

這是因為在連接這些版本的模擬器時,不能自動安裝上 Yosemite.apk ,我們可以通過手動安裝這個 apk ,再重新連接模擬器即可。
Airtest官網:http://airtest.netease.com/
Airtest教程官網:https://airtest.doc.io.netease.com/
搭建企業私有雲服務:https://airlab.163.com/b2b
