专栏文章 为什么你的 “点击” 不生效?!

fishfish-yu · 2021年06月22日 · 最后由 fishfish-yu 回复于 2021年07月01日 · 3802 次阅读

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

前言

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

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

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

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

① 使用 AirtestIDE 自带的环境

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

② 使用了本地 python 环境

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

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

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

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

① 能点击

则排除手机设置的问题。

② 不能点击

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

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

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

① log 查看窗出现了报错

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

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

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

多出现于截图脚本:

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

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

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

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

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

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

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

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

小结

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


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

官方答疑 Q 群:654700783

呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~

共收到 2 条回复 时间 点赞

如果是偶现的,也有这种可能:UI 卡顿,点击了没反应

testerming 回复

确实,专业的大兄弟

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册