答疑第三期 | 使用 Airtest 最常見的 8 大問題


 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM