阅读 706

为什么你的“点击”不生效?!

此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

前言

今天跟同学们来聊一聊点击不生效这个问题,经常听到答疑群里面有同学说:为什么我的代码执行了,但实际上没有发生点击的动作呢?又或是,为什么我用IDE连接上了设备,却不能点击手机画面呢?

下面我们就来看下,当同学们遇到各种“点击不生效”的情况时,究竟该如何排查。

“点击不生效”的排查办法

1. 检查是否使用了最新版本

① 使用AirtestIDE自带的环境

查看当前IDE的选项--设置里面,是否自定义了python.exe的路径,如未设置,则只需要检查当前的AirtestIDE是否为最新版本即可,不是最新版本的话,先将其更新到最新版本:

image

② 使用了本地python环境

如自定义了python.exe的路径,则表示当前未使用AirtestIDE自带的环境,而是使用了自定义的本地python环境,则需要检查自定义python环境里面的airtest库是否为最新版本,如不是最新,也请把airtest库更新到最新版。

我们可以在命令行运行 pip list 查看(如本地存在多个python环境,则需要特别注意区分自己使用的是哪个):

image

命令行运行或者其它python编辑器运行的情况同理,需要检查当前运行环境里面装的airtest库是否为最新版。

2. 尝试在IDE里面看看能否点击手机画面

① 能点击

则排除手机设置的问题。

② 不能点击

特别注意部分品牌手机需要开启“允许模拟点击位置”此类的选项,详情可查看官方文档:airtest.doc.io.netease.com/IDEdocs/dev…

3. 单独写一个脚本,只运行点击不生效的那条语句,运行后生成报告

这里是使用最小可复现脚本的办法,排除其它代码的干扰,能更快速定位到问题:

① log查看窗出现了报错

如出现类似 Picture xxx not found in the screen 的报错,则表明截图识别失败了,我们需要重新截图;比如说截取特征更加明显的截图,减少混入多余的背景等等,关于如何提高截图脚本的兼容性,我们也在之前的推文 “写了10000条Airtest截图脚本总结出来的截图经验,赶紧收藏!” 有详细介绍,有需要的同学可以直接前往阅读。

如出现类似 PocoNoSuchNodeException: Cannot find any visible node by xxx 的报错,则表明查找控件失败,需要检查控件的定位方式是否正确,当前页面是否存在此控件等。

② 没报错,但查看报告发现点到了错误的位置

多出现于截图脚本:

一种情况是,当前页面存在多个相同的截图,实际运行时没有点击到你的真实目标上面,此时可以通过局部识图、或者调整截图的 target_pos来辅助你定位到你的真实目标上面。

另外一种情况是,识别到了毫不相干的错误的目标上,有可能是图像阙值比较低,混入了错误的结果,可以尝试调整阙值过滤错误的结果。

③ 没报错,但查看报告发现点击出现了一定的位置偏移

常出现于Poco控件点击脚本中:

首先我们可以借助IDE辅助窗的检索控件功能,把鼠标移动到对应的控件上面,看看锁定控件的框框是否出现了偏移,如出现了偏移,我们可以通过一些偏移修正,或者去掉手机的虚拟按键栏来解决,详见我们的官方教程文档: airtest.doc.io.netease.com/IDEdocs/dev…

④ 查看报告发现画面未加载完毕就进行了点击

当画面未加载完全或者不够稳定的情况下,我们立即进行了点击操作,很可能出现点击操作确实执行了,但应用没能响应这个点击的情况。

此时我们可以在点击之前添加足够时长的 sleep() 以保证我们的应用稳定后再进行后续的点击操作。

小结

最后,我们提供了“点击不生效”的自检流程图,有需要的同学可以保存下来自查哦!

image


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

官方答疑 Q 群:654700783

呀,这么认真都看到这里啦,帮忙在文章左侧点一下点赞和收藏,给我一个支持把,灰常感谢~

文章分类
代码人生
文章标签