答疑第三期 | 使用Airtest最常见的 8 大问题

简介: 答疑第三期 | 使用Airtest最常见的 8 大问题

1.ImportError: DLL load failed: 找不到指定模块



常见的DLL报错会出现在以下2种情况中:


① 在 cv2 模块报 ImportError: DLL load failed: 找不到指定模块 的错:



根本原因应该是DLL文件的缺失,你可以直接下载一个最新版本的AirtestIDE,在解压后的目录中找到 api-ms-win-downlevel-shlwapi-l1-1-0.dllIEShims.dll 两个DLL文件(或者自行在网上搜索这俩个DLL文件也是可以的),然后将它们复制到 C:\Windows\System32 目录,重新运行代码即可解决。



② 若在 win.pyimport 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,如果你发现你的环境里面同时存在 pocopocoui ,请务必把 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 javacapUse ADB orientation 这俩个选项。


但是在一些版本的模拟器中,即使勾选上了连接参数,仍然可能连接不上模拟器,并出现如下的报错:



这是因为在连接这些版本的模拟器时,不能自动安装上 Yosemite.apk ,我们可以通过手动安装这个 apk ,再重新连接模拟器即可。


Airtest官网:airtest.netease.com/

Airtest教程官网:airtest.doc.io.netease.com/

搭建企业私有云服务:airlab.163.com/b2b


相关文章
|
12月前
|
人工智能
开启歌词创作之门:写歌词的技巧和方法详解,妙笔生词AI智能写歌词软件
歌词创作是通往音乐灵魂深处的大门。本文介绍了一些实用技巧,如借助《妙笔生词智能写歌词软件》的AI功能,捕捉生活中的灵感,确定主题,合理安排歌词结构,运用生动的语言和修辞手法,确保韵律和节奏,帮助你轻松开启创作之旅。
|
11月前
|
监控 网络协议 Nacos
介绍一下Nacos
介绍一下Nacos
|
9月前
|
程序员
Mac mini 通过键盘连接蓝牙鼠标
本文介绍了一种 Mac mini 通过纯键盘操作连接蓝牙鼠标的方法。
773 8
|
Java 数据库连接 Nacos
SpringCloud微服务配置管理、配置热更新
SpringCloud微服务配置管理、配置热更新
509 0
|
计算机视觉 Python
成功解决Python导入opencv报错“DLL load failed while importing cv2: 找不到指定的模”
成功解决Python导入opencv报错“DLL load failed while importing cv2: 找不到指定的模”
972 0
|
存储 C++ 容器
C++一分钟之-正则表达式库(regex)
【7月更文挑战第7天】C++从C++11开始支持正则表达式,通过`&lt;regex&gt;`库提供功能。本文涵盖基本概念如`std::regex`、`std::smatch`,以及`regex_search`和`regex_match`的使用。常见问题包括大小写敏感性、特殊字符转义、贪婪与非贪婪匹配和捕获组。提供的代码示例展示了如何进行匹配、不区分大小写的匹配、特殊字符匹配、贪婪与非贪婪匹配和捕获组的使用。理解并练习正则表达式能提升文本处理效率。
456 0
|
弹性计算 固态存储 调度
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置,CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
编解码 前端开发 图形学
Unity 用脚本操作常用UI控件(上)
Unity 用脚本操作常用UI控件(上)
295 0
|
Java 程序员 Maven
SpringBoot实现服务器PDF文件的下载和预览功能
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线
2086 1
SpringBoot实现服务器PDF文件的下载和预览功能
Latex,WPS公式编辑器,输入花体字母(在mathtype输入花体损失函数L)
Latex,WPS公式编辑器,输入花体字母(在mathtype输入花体损失函数L)
4082 0