前言
本次更新包含编辑器AirtestIDE的更新,版本提升至1.2.10;Airtest库版本更新至1.2.0。更新内容详见下文~
AirtestIDE更新
新功能
1. 新增图像识别算法 mstpl
新增图像识别算法 mstpl
,该算法提升了图像识别的准确性。同学们可以将自己的AirtestIDE更新到最新版本1.2.10(本地环境的更新Airtest至1.2.0)来使用这个新算法。
相应的,图片编辑器做了相关的一些小改动,可以调节新算法的2个专属参数:
其中 scale_max
用于调节匹配的最大范围;scale_step
用于控制搜索比例步长,示例:
from airtest.core.api import * touch(Template("search.png", scale_max=800, scale_step=0.005)) 复制代码
我们也会在后续文档中,提供如何调节相关参数,以更好地提升图像识别效果的方法。
2.自动适配连接有问题的设备,无需勾选备选参数
在更新到最新版本的AirtestIDE1.2.10后,连接手机时可以不再需要勾选备选的设备连接参数了,所以请同学们将IDE版本更新至1.2.10之后,connect
设备之前请检查下是否已经把备选连接参数都取消了:
例如,原本模拟器连接时,需要勾选 use Javacap
选项,现在无需勾选只需要直接连接即可。
另外,我们删除了 cap_method=MINICAP_STREAM
这一参数,请同学们注意不要在脚本运行时传入 MINICAP_STREAM
,否则可能出现报错导致脚本无法正常运行。
3.IDE自带环境中的Airtest库更新至1.2.0版本
AirtestIDE自带的Python环境,里面的Airtest库更新至1.2.0版本;如在IDE设置了本地Python环境,则需要手动将对应本地环境的Airtest更新至最新版本1.2.0。
4.对Android12支持较差,可等待后续版本支持
Android12目前的支持情况比较差,图像画面显示速度很慢,请同学们耐心等待后续的版本更新。
bug修复
1. 修复1.2.9拔插手机出现内存泄漏的问题
修复了IDE1.2.9版本直接插拔手机后,内存会不断上涨的问题。
2. 修复部分机型横屏图像显示错误
修复了部分机型在横屏时,屏幕图像显示错误的问题。
更新与下载
1. 覆盖更新
使用旧版本IDE的同学,打开IDE时收到新版本的更新提示,可以直接选择覆盖更新,需要注意的是,选择覆盖更新之前,请同学们检查下有没有把脚本保存在AirtestIDE的文件夹目录下,如有,请备份脚本后再进行覆盖更新。
2. 到官网上下载最新版本
不想进行覆盖更新的同学,也可以直接到我们的AirtestProject官网上下载最新版本的IDE,请认准我们的官方网址:airtest.netease.com/index.html 。(注意不要在非官方网站上下载我们的AirtestIDE哦~)
Airtest库更新
新功能
1.新增:图像识别算法mstpl
我们新增了一个改良版本的模板匹配识别算法,能够大幅度增加原有的模板匹配的成功率,更好地适配分辨率变化的场景。
将Airtest更新至1.2.0以上版本即可使用,如果您正在使用AirtestIDE,也请同步更新至1.2.10以上版本,最新的版本已经将该算法设置为首选使用的算法。
在Template图片对象初始化时,与新算法有关的参数如下:
- 新加入
scale_max
:新算法专用参数,用于调节匹配的最大范围,如果要查找的目标UI很小的话,可以适当增大这个数值,默认值 800, 推荐值 740, 800, 1000 取值范围 [700 , 2000] - 新加入
scale_step
:新算法专用参数,用于控制搜索比例步长,如果要查找的目标UI很小的话,可以适当减小这个数值,默认值0.005,推荐值 0.02, 0.005, 0.001 取值范围 [0.001, 0.1]
2.接口改动:连接手机时无需指定参数
在Airtest 1.2.0以上版本中,我们不再希望大家连接手机时,手动指定各连接参数了,包括 cap_method
,touch_method
和 ori_method
。
因此我们进行了一些改动,在初始化手机时,如果遇到问题,Airtest将会自动尝试进行兼容,并选取备用方案进行连接,直到成功为止。
改动详情可以参看我们github上的更新文档:github.com/AirtestProj… 。
bug修复
1.解决了旧版本拔插手机内存泄漏的问题
nbsp增加了一个 auto_kill
参数,在手机断开连接时,能自动杀掉socket,避免内存泄露的问题。使用旧版Airtest的同学如遇到内存泄漏问题,可直接将使用的Airtest更新到最新的1.2.0版本来解决此问题。
2.解决了几个结束时未完全关闭io流的warning
3.兼容了在脚本运行时传入的脚本路径末尾带有/的情况
4.重新加入了SIFT算法
SIFT算法专利已经解禁,因此重新加入了SIFT算法作为默认算法,但是受限于opencv的版本号,不是所有的版本号都可以直接使用。
5.修复部分横屏设备显示错误的问题
修复了在部分新型号手机上,在横屏状态时获取到的display_info尺寸相反的问题,这个问题会导致在IDE上的横屏状态下,屏幕画面显示错误,例如vivo iQOO Neo5,华为Mate40Pro等。
更新方式
更新Airtest库到最新版本:
pip install -U airtest 复制代码
如使用的是AirtestIDE且未设置本地Python环境,则将IDE更新到1.2.10版本即可。
更新版本之后的常见问题及解决办法
覆盖更新失败
如进行IDE的覆盖更新之后,发现缺少.exe文件,或者不能正常打开IDE,大概率是覆盖过程中出现了某些异常。
无需惊慌,直接删除问题版本,到我们官方网站上重新下载最新的版本即可。(官方网址:airtest.netease.com/index.html)
如覆盖更新之后,发现脚本全部丢失,则大概率是把脚本保存到了IDE的文件夹目录下,覆盖更新时把脚本删除了;所以务必请同学们再进行覆盖更新操作之前,检查是否将脚本保存到了IDE的文件夹目录下!!!
三星部分型号手机画面不能占满窗口
如使用1.2.10版本的AirtestIDE连接三星的部分型号设备,出现设备画面没有占满整个设备窗的情况,请在“设置”-“显示”中将“屏幕分辨率”调至 “WQHD”:
点击失效/偏移/不能点击
请先查看完推文 “为什么我的点击“不生效”?!” 的内容之后,了解清楚自己的点击失效究竟属于哪种情况,然后再将必要信息提交issue:github.com/AirtestProj…
或者在我们的官方答疑Q群(654700783)中@ 网易Airtest@晓娟,给出详细的问题描述。
连接模拟器失败/不能点击模拟器
1.2.10版本的IDE可以无需勾选任何参数,直接连接上大部分主流的模拟器,如最新版IDE不能连接模拟器,请排查以下问题:
- 确保电脑里面的ADB都是一个统一的版本
- 确保模拟器上安装好了Yosemite.apk
- 确保模拟器已经更新到了最新版本
如上述问题都已确认完毕,连接模拟器仍出现黑屏、不能点击的问题,请尝试只勾选 use javacap
来解决,如还未能解决,可以将此情况反馈到issue上:github.com/AirtestProj…
使用最新版本图像识别报错
如果在图像识别时遇到问题或异常报错,请将当前界面截图、与脚本中使用的图片一起提交issue:github.com/AirtestProj…