如何修改自己本地的Airtest源码

简介: 如何修改自己本地的Airtest源码

前言



相信小伙伴们多少都会遇到想要修改Airtest源码,方便自己脚本编写的情况。这时,部分同学会立即去修改AirtestIDE文件夹下Airtest库的.py文件(如下图),其实这样修改是无效的,并不会达到预期的效果。



正确的修改Airtest源码的步骤是:


  • 在本地安装python环境
  • 安装Airtest
  • 安装Poco
  • 在本地的Airtest库中修改源码


在本地安装python环境



Airtest支持Python版本为2.7或者<=3.6,但是我们更推荐使用 Python3。如果你愿意的话我们也同样建议使用 virtualenv 等虚拟环境新建一个干净的python环境。各个版本的python可以自行到python官网上下载安装。


安装Airtest



  1. 使用 pip 安装Airtest框架 pip install airtest
  2. 注意:Mac/Linux系统下,需要手动赋予adb可执行权限,否则可能在执行脚本时遇到 Permission denied 的报错:
# mac系统
> cd {your_python_path}/site-packages/airtest/core/android/static/adb/mac
# linux系统
> cd {your_python_path}/site-packages/airtest/core/android/static/adb/linux
> chmod +x adb
复制代码


  1. 若运行代码时,在cv2模块报 ImportError: DLL load failed: 找不到指定模块 的错误,有以下几种解决方案:
  • 问题的根本原因应该是DLL文件的缺失,我们将它们放入了IDE的目录中,可以直接下载一个最新版本的AirtestIDE,在解压后的目录中找到api-ms-win-downlevel-shlwapi-l1-1-0.dllIEShims.dll两个DLL文件,将他们复制到C:\Windows\System32目录,重新运行代码即可解决
  • 如果使用了python3.7,请安装 Visual C++ redistributable 2015
  • 如果使用的python版本低于3.7,请直接运行:


> pip uninstall opencv-contrib-python   
# 若以下安装语句运行失败,可以尝试更新pip到最新版本后重试   
> install opencv-contrib-python==3.2.0.7  
复制代码


  • 若在win.pyimport win32api时报DLL load failed,可以尝试重新安装pywin32模块:


pip uninstall pywin32
pip install pywin32==223
复制代码


安装Poco



使用 pip 安装poco框架 pip install pocoui,请注意库的名称为 pocoui,不是poco,请不要填错。



如果你在命令行中使用pip list ,看到同时存在pocopocoui两个库,请把poco卸载,因为pocoui才是正确的库。


在本地的Airtest库里面修改源码



完成上述三步以后,其实就是在本地部署了一个python环境来使用airtestpoco。然后我们可以修改本地安装的Airtest库里面的源码,使得修改生效。


举个例子,打开你本地安装的Airtest库,找到Airtest>--airtest>--core目录下的api.py文件,在touch方法里加一条代码,如下:



那么你在命令行运行脚本的时候,如果脚本里面写有touch语句,你在touch方法里面增加的print语句也会生效:



如果想要你修改的内容在IDE也生效的话,只需要将IDE的运行环境改成本地运行环境即可:



这时候IDE运行时,使用的Airtest库就不是IDE自带的Airtest库,而是你在本地安装的Airtest库,运行一条touch语句,之前对touch方法的修改也会在IDE里面生效了:


相关文章
|
关系型数据库 MySQL
wget下载软件包时,遇到不信任问题,除了跳过证书检验,更新或者下载ca证书也是个解决办法
wget下载软件包时,遇到不信任问题,除了跳过证书检验,更新或者下载ca证书也是个解决办法
1477 0
|
Java
jdk 8 使用okhttp3 实现 http2
使用jdk8 使用okhttp3 实现http2请求
4037 0
jdk 8 使用okhttp3 实现 http2
|
安全 Android开发 数据安全/隐私保护
深入探讨iOS与Android系统安全性对比分析
在移动操作系统领域,iOS和Android无疑是两大巨头。本文从技术角度出发,对这两个系统的架构、安全机制以及用户隐私保护等方面进行了详细的比较分析。通过深入探讨,我们旨在揭示两个系统在安全性方面的差异,并为用户提供一些实用的安全建议。
|
5月前
|
数据采集 人工智能 监控
从 Agent 到模型推理:端到端的可观测性实践
本文探讨了AI领域的最新发展趋势及应用挑战,详细分析了模型、框架与应用场景的进展,并针对如何用好AI、节省资源与确保合规提出了见解。同时,文章深入剖析了AI应用的典型架构,强调实现端到端可观测性的关键步骤,包括全链路追踪与数据平台构建。此外,还介绍了阿里云提供的全栈可观测解决方案,以及Tracing技术的具体实现细节。通过对关键性能指标(如TTFT和TPOT)的监控,优化数据采集与探针性能,解决了Dify等平台的实际问题。最后,阐述了模型质量评估与Token黑洞监控的重要性,并展示了阿里云监控平台的统一观测能力,助力用户全面掌握AI应用表现。
|
10月前
|
API Anolis 开发者
Intel® oneAPI 在龙蜥社区里面的支持情况分享|龙蜥大讲堂116期
本次分享的主题是 Intel® oneAPI 在龙蜥社区里面的支持情况分享。主要分为四个部分: 1. What is Intel® oneAPI 2. Intel® oneAPI infrastructure 3. Anolis Intel® oneAPI enabling status 4. Qwen2 demo
280 0
|
API 开发者 容器
DevEco Studio:熟练使用华为提供的集成开发环境DevEco Studio
【10月更文挑战第22天】随着HarmonyOS的普及,华为推出了官方集成开发环境DevEco Studio,以提高开发效率。本文通过开发一款天气应用的案例,详细介绍了如何使用DevEco Studio进行环境搭建、界面设计、数据绑定与交互、调试与运行等步骤,帮助开发者高效完成HarmonyOS应用开发。
1009 6
stm32f407探索者开发板(十六)——串行通信原理讲解-UART
stm32f407探索者开发板(十六)——串行通信原理讲解-UART
907 0
|
数据挖掘 数据处理 数据格式
Python读取.nc文件的方法与技术详解
通过上述方法,用户可以根据需求选择合适的库来读取.nc文件,并根据实际情况进行必要的数据操作,这是科学数据处理和分析中的一个重要技能。
963 10
|
机器学习/深度学习 人工智能 数据处理
Python海龟绘图:绘出最靓丽的景色
Python海龟绘图:绘出最靓丽的景色
482 0
|
SQL 存储 关系型数据库
必知的 MySQL 索引失效场景【包括实践验证】,别再踩坑了!(下)
必知的 MySQL 索引失效场景【包括实践验证】,别再踩坑了!
1440 2
下一篇
oss云网关配置