答疑第三期 | 使用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


相关文章
|
人工智能
开启歌词创作之门:写歌词的技巧和方法详解,妙笔生词AI智能写歌词软件
歌词创作是通往音乐灵魂深处的大门。本文介绍了一些实用技巧,如借助《妙笔生词智能写歌词软件》的AI功能,捕捉生活中的灵感,确定主题,合理安排歌词结构,运用生动的语言和修辞手法,确保韵律和节奏,帮助你轻松开启创作之旅。
|
10月前
|
程序员
Mac mini 通过键盘连接蓝牙鼠标
本文介绍了一种 Mac mini 通过纯键盘操作连接蓝牙鼠标的方法。
1020 8
|
vr&ar Android开发 数据安全/隐私保护
移动应用与系统:探索现代移动端技术的演进与创新####
本文深入探讨了移动应用开发和移动操作系统的发展历程,分析了当前技术趋势以及未来的发展方向。通过具体案例和技术解析,揭示了如何利用最新技术提升用户体验和应用性能。文章还讨论了移动操作系统的安全性问题及其解决方案,为开发者提供了宝贵的参考。 ####
|
JavaScript 前端开发 开发者
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
476 1
|
机器学习/深度学习 自然语言处理 算法
智能语音助手的未来:从技术到伦理的探索
【10月更文挑战第21天】 本文探讨了智能语音助手的发展历程、当前技术现状以及面临的伦理挑战。通过对现有技术的深入分析,文章揭示了智能语音识别和自然语言处理技术的进步对日常生活的影响,同时指出了数据隐私、算法偏见和人机交互等方面的伦理问题。最后,文章提出了对未来智能语音助手发展的展望,强调了在技术创新的同时,必须考虑到伦理和社会影响的重要性。
663 0
|
存储 缓存 JavaScript
三个小时vue3.x从零到实战(前)(vue3.x基础)
该文章提供了关于Vue 3.x的基础教程,覆盖了从环境搭建到基本使用的各个方面,适合Vue 3.x的初学者。
141 0
|
IDE 开发工具 Python
Python PyQT5 取消标题栏和最大变化、最小化及关闭按钮
Python PyQT5 取消标题栏和最大变化、最小化及关闭按钮
663 0
|
Java
elasticsearc使用指南之ES管道聚合(Pipeline Aggregation)
本节详细介绍了ES Pipeline Aggregation 管道聚合的使用方法,重点介绍了Avg Bucket Aggregation、Percentiles Bucket Aggregation、Cumulative Sum Aggregation、Bucket Sort Aggregation、Max Bucket Aggregation、Min Bucket Aggregation、Sum Bucket Aggregation、Stats Bucket Aggregation。
3991 0
|
编解码 前端开发 图形学
Unity 用脚本操作常用UI控件(上)
Unity 用脚本操作常用UI控件(上)
328 0
Latex,WPS公式编辑器,输入花体字母(在mathtype输入花体损失函数L)
Latex,WPS公式编辑器,输入花体字母(在mathtype输入花体损失函数L)
4402 0
下一篇
oss云网关配置