zoukankan      html  css  js  c++  java
  • 答疑第三期 | 使用 Airtest 最常见的 8 大问题

     

    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:WindowsSystem32 目录,重新运行代码即可解决。

    ② 若在 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() 等方法让我们去读取UI的属性值,例如我们可以这样获取并打印下面这个节点的 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 ,再重新连接模拟器即可。


     

    Airtest官网:http://airtest.netease.com/
    Airtest教程官网:https://airtest.doc.io.netease.com/
    搭建企业私有云服务:https://airlab.163.com/b2b

  • 相关阅读:
    48. Rotate Image
    47. Permutations II
    46. Permutations
    45. Jump Game II
    44. Wildcard Matching
    43. Multiply Strings
    42. Trapping Rain Water
    41. First Missing Positive
    40. Combination Sum II
    39. Combination Sum
  • 原文地址:https://www.cnblogs.com/AirtestProject/p/12704933.html
Copyright © 2011-2022 走看看