梦幻西游 python.dll,答疑第三期 | 使用 Airtest 最常见的 8 大问题

此文章来源于项目官方公众号:“AirtestProject”

版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

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

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

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

8ccc1ad6ded0b04281b914c441ae98f2.png

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

d06bde2ad10ba9098e8120a1d1264d99.png

② 若在 win.py 中 import win32api 时报 DLL load failed :

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 那一行查看。

bb4add0cbbd23d73fb601a25e8cc5ac0.png

② 使用 airtest version 命令,但注意该命令只对 1.1.2 以上的 Airtest 版本生效。

56eb03771e840da880c5475026ae85d7.png

4.自定义截图压缩精度

当 Airtest 版本≥1.1.2 时,我们可以自定义截图精度:

① 在本地运行脚本时自定义:

# quality取值[1,99],airtest默认取10,希望获得更高精度可以取值75

airtest run xxx --compress quality

213fa77da334b805b59183a198366c59.png

② 在脚本中自定义(优先级高于在命令行自定义):

自定义全局的截图压缩精度:

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

c49bd903deef4766d1c0f08b3418e1ba.png

8.模拟器勾选上连接参数之后还是连不上

之前跟大家强调过,连接模拟器的时候,我们需要勾选上一些备选的连接参数才能连接上模拟器,或者不让模拟器黑屏。

比如连接雷电时需要勾选上 Use javacap,而连接夜神的时候需要勾选上 Use javacap 和 Use ADB orientation 这俩个选项。

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

cd2db6eba57b7ec68b0b2917be47e588.png

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

Airtest 官网:airtest.netease.com/

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

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

关注下方公众号,可以查看更多往期教程,回复 “交流群” 可以加入我们的官方开发者交流群

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值