此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途
本次更新包含编辑器AirtestIDE 的更新,版本提升至 1.2.10;Airtest 库版本更新至 1.2.0。更新内容详见下文~
新增图像识别算法 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))
我们也会在后续文档中,提供如何调节相关参数,以更好地提升图像识别效果的方法。
在更新到最新版本的 AirtestIDE1.2.10 后,连接手机时可以不再需要勾选备选的设备连接参数了,所以请同学们将 IDE 版本更新至 1.2.10 之后,connect
设备之前请检查下是否已经把备选连接参数都取消了:
例如,原本模拟器连接时,需要勾选 use Javacap
选项,现在无需勾选只需要直接连接即可。
另外,我们删除了 cap_method=MINICAP_STREAM
这一参数,请同学们注意不要在脚本运行时传入 MINICAP_STREAM
,否则可能出现报错导致脚本无法正常运行。
AirtestIDE 自带的 Python 环境,里面的 Airtest 库更新至 1.2.0 版本;如在 IDE 设置了本地 Python 环境,则需要手动将对应本地环境的 Airtest 更新至最新版本 1.2.0。
Android12 目前的支持情况比较差,图像画面显示速度很慢,请同学们耐心等待后续的版本更新。
修复了 IDE1.2.9 版本直接插拔手机后,内存会不断上涨的问题。
修复了部分机型在横屏时,屏幕图像显示错误的问题。
使用旧版本 IDE 的同学,打开 IDE 时收到新版本的更新提示,可以直接选择覆盖更新,需要注意的是,选择覆盖更新之前,请同学们检查下有没有把脚本保存在 AirtestIDE 的文件夹目录下,如有,请备份脚本后再进行覆盖更新。
不想进行覆盖更新的同学,也可以直接到我们的 AirtestProject 官网上下载最新版本的 IDE,请认准我们的官方网址:http://airtest.netease.com/index.html 。(注意不要在非官方网站上下载我们的 AirtestIDE 哦~)
我们新增了一个改良版本的模板匹配识别算法,能够大幅度增加原有的模板匹配的成功率,更好地适配分辨率变化的场景。
将 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]在 Airtest 1.2.0 以上版本中,我们不再希望大家连接手机时,手动指定各连接参数了,包括 cap_method
,touch_method
和 ori_method
。
因此我们进行了一些改动,在初始化手机时,如果遇到问题,Airtest 将会自动尝试进行兼容,并选取备用方案进行连接,直到成功为止。
改动详情可以参看我们 github 上的更新文档:https://github.com/AirtestProject/Airtest/releases/tag/v1.2.0 。
nbsp 增加了一个 auto_kill
参数,在手机断开连接时,能自动杀掉 socket,避免内存泄露的问题。使用旧版 Airtest 的同学如遇到内存泄漏问题,可直接将使用的 Airtest 更新到最新的 1.2.0 版本来解决此问题。
SIFT 算法专利已经解禁,因此重新加入了 SIFT 算法作为默认算法,但是受限于 opencv 的版本号,不是所有的版本号都可以直接使用。
修复了在部分新型号手机上,在横屏状态时获取到的 display_info 尺寸相反的问题,这个问题会导致在 IDE 上的横屏状态下,屏幕画面显示错误,例如 vivo iQOO Neo5,华为 Mate40Pro 等。
更新 Airtest 库到最新版本:
pip install -U airtest
如使用的是 AirtestIDE 且未设置本地 Python 环境,则将 IDE 更新到 1.2.10 版本即可。
如进行 IDE 的覆盖更新之后,发现缺少.exe 文件,或者不能正常打开 IDE,大概率是覆盖过程中出现了某些异常。
无需惊慌,直接删除问题版本,到我们官方网站上重新下载最新的版本即可。(官方网址:http://airtest.netease.com/index.html)
如覆盖更新之后,发现脚本全部丢失,则大概率是把脚本保存到了 IDE 的文件夹目录下,覆盖更新时把脚本删除了;所以务必请同学们再进行覆盖更新操作之前,检查是否将脚本保存到了 IDE 的文件夹目录下!!!
如使用 1.2.10 版本的 AirtestIDE 连接三星的部分型号设备,出现设备画面没有占满整个设备窗的情况,请在 “设置” - “显示” 中将 “屏幕分辨率” 调至 “WQHD”:
请先查看完推文 “为什么我的点击 “不生效”?!” 的内容之后,了解清楚自己的点击失效究竟属于哪种情况,然后再将必要信息提交 issue:https://github.com/AirtestProject/Airtest/issues。
或者在我们的官方答疑 Q 群(654700783)中 @ 网易 Airtest@ 晓娟,给出详细的问题描述。
1.2.10 版本的 IDE 可以无需勾选任何参数,直接连接上大部分主流的模拟器,如最新版 IDE 不能连接模拟器,请排查以下问题:
如上述问题都已确认完毕,连接模拟器仍出现黑屏、不能点击的问题,请尝试只勾选 use javacap
来解决,如还未能解决,可以将此情况反馈到 issue 上:https://github.com/AirtestProject/Airtest/issues。
如果在图像识别时遇到问题或异常报错,请将当前界面截图、与脚本中使用的图片一起提交 issue:https://github.com/AirtestProject/Airtest/issues。
同理也可以在我们的官方答疑 Q 群(654700783)中 @ 网易 Airtest@ 晓娟,并给出对应的界面截图和脚本中使用的图片,方便我们进行排查。
这次版本的 Airtest 的图像识别算法虽然更容易识别,但是误判率也会更高,我们会很快出一个版本来优化这个问题。
Airtest 官网:http://airtest.netease.com/
Airtest 教程官网:https://airtest.doc.io.netease.com/
搭建企业私有云服务:https://airlab.163.com/b2b
官方答疑 Q 群:654700783
呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~