注:我们的 Airtest 官方公众号(AirtestProject)会持续更新大家对于 Airtest 感兴趣的问题,欢迎有需要的同学关注并查看我们更多的内容。
如想向我们反馈关于 AirtestProject 想了解的问题,欢迎到公众号后台留言。
相信小伙伴们多少都会遇到想要修改Airtest
源码,方便自己脚本编写的情况。这时,部分同学会立即去修改AirtestIDE
文件夹下Airtest
库的.py
文件(如下图),其实这样修改是无效的,并不会达到预期的效果。
正确的修改Airtest
源码的步骤是:
python
环境Airtest
Poco
Airtest
库中修改源码Airtest
支持Python
版本为 2.7 或者<=3.6,但是我们更推荐使用 Python3
。如果你愿意的话我们也同样建议使用 virtualenv
等虚拟环境新建一个干净的python
环境。各个版本的python
可以自行到python
官网上下载安装。
pip
安装Airtest
框架 pip install airtest
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
cv2
模块报 ImportError: DLL load failed:
找不到指定模块 的错误,有以下几种解决方案:DLL
文件的缺失,我们将它们放入了IDE
的目录中,可以直接下载一个最新版本的AirtestIDE
,在解压后的目录中找到api-ms-win-downlevel-shlwapi-l1-1-0.dll
和IEShims.dll
两个DLL
文件,将他们复制到C:\Windows\System32
目录,重新运行代码即可解决python3.7
,请安装 Visual C++ redistributable 2015
> pip uninstall opencv-contrib-python
# 若以下安装语句运行失败,可以尝试更新pip到最新版本后重试
> install opencv-contrib-python==3.2.0.7
win.py
中import win32api
时报DLL load failed
,可以尝试重新安装pywin32
模块:
pip uninstall pywin32
pip install pywin32==223
使用 pip
安装poco
框架 pip install pocoui
,请注意库的名称为 pocoui
,不是poco
,请不要填错。
如果你在命令行中使用pip list
,看到同时存在poco
和pocoui
两个库,请把poco
卸载,因为pocoui
才是正确的库。
完成上述三步以后,其实就是在本地部署了一个python
环境来使用airtest
和poco
。然后我们可以修改本地安装的Airtest
库里面的源码,使得修改生效。
举个例子,打开你本地安装的Airtest
库,找到Airtest>--airtest>--core
目录下的api.py
文件,在touch
方法里加一条代码,如下:
那么你在命令行运行脚本的时候,如果脚本里面写有touch
语句,你在touch
方法里面增加的print
语句也会生效:
如果想要你修改的内容在 IDE 也生效的话,只需要将 IDE 的运行环境改成本地运行环境即可:
这时候 IDE 运行时,使用的Airtest
库就不是 IDE 自带的Airtest
库,而是你在本地安装的Airtest
库,运行一条touch
语句,之前对touch
方法的修改也会在 IDE 里面生效了:
最后,如果大家对 Airtest 有疑问、BUG、建议,请到https://github.com/AirtestProject/AirtestIDE/issues 发布 issue,我们会有专人解答。同时,我们还提供了官方 QQ 群给大家沟通交流,目前 1 群已满,欢迎大家加入 2 群: