1.ImportError: DLL load failed: 找不到指定模块 2. 各种常用的pip命令 3.查询Airtest版本号的方法 4.自定义截图压缩精度...
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()
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
,再重新连接模拟器即可。