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