梦幻西游 python.dll,答疑第三期 | 使用 Airtest 最常见的 8 大问题
此文章來源于項(xiàng)目官方公眾號(hào):“AirtestProject”
版權(quán)聲明:允許轉(zhuǎn)載,但轉(zhuǎn)載必須保留原鏈接;請(qǐng)勿用作商業(yè)或者非法用途
1.ImportError: DLL load failed: 找不到指定模塊
常見的 DLL 報(bào)錯(cuò)會(huì)出現(xiàn)在以下 2 種情況中:
① 在 cv2 模塊報(bào) ImportError: DLL load failed: 找不到指定模塊 的錯(cuò):
根本原因應(yīng)該是 DLL 文件的缺失,你可以直接下載一個(gè)最新版本的 AirtestIDE,在解壓后的目錄中找到 api-ms-win-downlevel-shlwapi-l1-1-0.dll 和 IEShims.dll 兩個(gè) DLL 文件(或者自行在網(wǎng)上搜索這倆個(gè) DLL 文件也是可以的),然后將它們復(fù)制到 C:\Windows\System32 目錄,重新運(yùn)行代碼即可解決。
② 若在 win.py 中 import win32api 時(shí)報(bào) DLL load failed :
import win32api
ImportError: DLL load failed: 找不到指定的程序。
建議您運(yùn)行下列指令,更新為 223 版本的 pywin32:
pip uninstall pywin32
pip install pywin32==223
2. 各種常用的 pip 命令
① 安裝 Airtest 庫(kù): pip install airtest
② 安裝 poco 庫(kù): pip install pocoui
③ 更新 Airtest: pip install -U airtest
④ 更新 Poco: pip install -U pocoui
⑤ 卸載 Airtest 庫(kù): pip uninstall airtest
特別注意:Poco 依賴庫(kù)是 pocoui 而不是 poco,如果你發(fā)現(xiàn)你的環(huán)境里面同時(shí)存在 poco 和 pocoui ,請(qǐng)務(wù)必把 poco 卸載了,留下 pocoui即可。
另外,如果你的電腦同時(shí)安裝了 python3 和 python2 ,在不同 python 環(huán)境里面使用 pip 命令時(shí)可以使用如下方法:
# Python2
pip2 install XXX
python2 -m pip install XXX
# Python3
pip3 install XXX
python3 -m pip install XXX
3.查詢 Airtest 版本號(hào)的方法
查詢本地環(huán)境中的 Airtest 版本可以使用如下倆種方法:
① 使用 pip list 命令,找到 Airtest 那一行查看。
② 使用 airtest version 命令,但注意該命令只對(duì) 1.1.2 以上的 Airtest 版本生效。
4.自定義截圖壓縮精度
當(dāng) Airtest 版本≥1.1.2 時(shí),我們可以自定義截圖精度:
① 在本地運(yùn)行腳本時(shí)自定義:
# quality取值[1,99],airtest默認(rèn)取10,希望獲得更高精度可以取值75
airtest run xxx --compress quality
② 在腳本中自定義(優(yōu)先級(jí)高于在命令行自定義):
自定義全局的截圖壓縮精度:
import airtest.core.api import *
ST.SNAPSHOT_QUALITY = xxx
自定義單張截圖的壓縮精度:
snapshot(quality=my_quality)
5.Airtest 支持多設(shè)備運(yùn)行嗎
Airtest 支持 Android iOS 的多設(shè)備運(yùn)行 ,但是這些目前僅用在我們的收費(fèi)的小型機(jī)柜方案私有云中 ,外放的開源版本可以自己實(shí)現(xiàn)。
另外,Airtest 還支持 Android 設(shè)備的 多機(jī)協(xié)作功能 ,實(shí)操案例可以參考往期推文:“多機(jī)協(xié)作” -- 微信互加好友案例分析。
6.怎樣輸入隨機(jī)數(shù)字
首先我們要利用 python 的 random 函數(shù)創(chuàng)建出符合要求的隨機(jī)數(shù);比如想要隨機(jī)輸入 20-100 的 1 個(gè)整數(shù)型隨機(jī)數(shù):
import random
r = random.randint(20,100)
然后使用 text 接口完成隨機(jī)數(shù)的輸入,但要注意的是,text 接口傳入的是一個(gè)字符串類型,所以把隨機(jī)數(shù)傳入 text 接口之前,要把剛才創(chuàng)建的隨機(jī)數(shù)轉(zhuǎn)化為字符串類型:
text(str(random.randint(20,100)))
這樣我們就可以完成輸入隨機(jī)數(shù)字的需求啦。
7.如何獲取節(jié)點(diǎn)的 text 屬性并打印
Poco 提供了 get_text() 和 get_name() 等方法讓我們?nèi)プx取 UI 的屬性值,例如我們可以這樣獲取并打印下面這個(gè)節(jié)點(diǎn)的 text 屬性和 name 屬性:
a = poco(text="聯(lián)系人")
print(a.get_text()) # 打印出:聯(lián)系人
print(a.get_name()) # 打印出:android.widget.TextView
8.模擬器勾選上連接參數(shù)之后還是連不上
之前跟大家強(qiáng)調(diào)過,連接模擬器的時(shí)候,我們需要勾選上一些備選的連接參數(shù)才能連接上模擬器,或者不讓模擬器黑屏。
比如連接雷電時(shí)需要勾選上 Use javacap,而連接夜神的時(shí)候需要勾選上 Use javacap 和 Use ADB orientation 這倆個(gè)選項(xiàng)。
但是在一些版本的模擬器中,即使勾選上了連接參數(shù),仍然可能連接不上模擬器,并出現(xiàn)如下的報(bào)錯(cuò):
這是因?yàn)樵谶B接這些版本的模擬器時(shí),不能自動(dòng)安裝上 Yosemite.apk ,我們可以通過手動(dòng)安裝這個(gè) apk ,再重新連接模擬器即可。
Airtest 官網(wǎng):airtest.netease.com/
Airtest 教程官網(wǎng):airtest.doc.io.netease.com/
搭建企業(yè)私有云服務(wù):airlab.163.com/b2b
關(guān)注下方公眾號(hào),可以查看更多往期教程,回復(fù) “交流群” 可以加入我們的官方開發(fā)者交流群
總結(jié)
以上是生活随笔為你收集整理的梦幻西游 python.dll,答疑第三期 | 使用 Airtest 最常见的 8 大问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AD18学习之画PCB时,如何移动器件同
- 下一篇: 圣诞树程序