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

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

前言



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


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


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



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


① 使用AirtestIDE自带的环境


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


网络异常,图片无法展示
|


② 使用了本地python环境


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


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


网络异常,图片无法展示
|


命令行运行或者其它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() 以保证我们的应用稳定后再进行后续的点击操作。


小结



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


网络异常,图片无法展示
|

相关文章
|
设计模式 前端开发 数据可视化
【第4期】一文了解React UI 组件库
【第4期】一文了解React UI 组件库
684 0
|
10天前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
84 2
|
数据可视化 开发工具 git
Sourcetree
Sourcetree 是一款免费的 Git 和 Hg 客户端管理工具,同时支持 Mn 版本控制系统。它为 Windows 和 Mac 用户提供了可视化的 Git 管理界面,使得用户能够轻松地创建、克隆、提交、推送、拉取和合并等 Git 操作。Sourcetree 还具有强大的代码对比功能,可以方便地查看和合并代码更改。
487 1
|
DataWorks 大数据 数据处理
DataWorks里面的槽位分析
DataWorks里面的槽位分析
256 0
|
8月前
|
机器学习/深度学习 人工智能 缓存
探秘 DeepSeek:那些你必须了解的事
DeepSeek是一家由中国幻方量化支持的创新型AI公司,专注于开发高性能、低成本的大语言模型。其独特的技术路径打破了参数规模、能耗成本和认知可靠性之间的“三元悖论”,实现了在单张显卡上运行170亿参数模型的突破。DeepSeek通过开源策略和高性价比模型(如DeepSeek-R1),大幅降低了AI应用门槛,推动了全球开发者社区的发展。其应用场景广泛覆盖教育、医疗、金融等领域,显著提升了工作效率和服务质量。DeepSeek的成功不仅在于技术创新,更在于其开放合作的理念,正引领AI行业的新变革。
979 9
探秘 DeepSeek:那些你必须了解的事
|
10月前
|
人工智能 大数据 Apache
Flink Forward Asia 2024 即将盛大开幕!
Flink Forward Asia 2024是由Apache官方授权的技术大会,聚焦流式湖仓、流批一体、AI大模型等热点方向,旨在分享Flink社区最新动态及实践经验,是Flink开发者和使用者不容错过的盛会。大会不仅探讨了Flink在实时大数据分析中的应用,还深入讨论了Data+AI领域的新成果,如基于Flink和Elasticsearch的企业级高级RAG架构设计,展示了Flink在多模态数据处理、实时数据向量化等方面的强大能力。
|
12月前
|
存储 API 数据安全/隐私保护
web录屏方案实现
【10月更文挑战第9天】
338 1
|
机器学习/深度学习 搜索推荐 PyTorch
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
3001 3
|
Java 数据库连接 数据库
AI 时代风起云涌,Hibernate 实体映射引领数据库高效之路,最佳实践与陷阱全解析!
【8月更文挑战第31天】Hibernate 是一款强大的 Java 持久化框架,可将 Java 对象映射到关系数据库表中。本文通过代码示例详细介绍了 Hibernate 实体映射的最佳实践,包括合理使用关联映射(如 `@OneToMany` 和 `@ManyToOne`)以及正确处理继承关系(如单表继承)。此外,还探讨了常见陷阱,例如循环依赖可能导致的无限递归问题,并提供了使用 `@JsonIgnore` 等注解来避免此类问题的方法。通过遵循这些最佳实践,可以显著提升开发效率和数据库操作性能。
200 0
|
存储 分布式计算 大数据
《数据湖的时空穿越:Delta Lake如何用版本控制解锁历史迷雾》
【8月更文挑战第27天】Delta Lake作为一个开源的存储层为Apache Spark及大数据工作流带来了事务性支持与数据版本控制功能。通过将数据表视作一系列不可变的事务日志记录,Delta Lake实现了数据一致性的保障。它支持ACID事务并允许用户追踪和管理数据表的不同版本。利用提供的示例代码可以看到如何对Delta Lake表进行操作、查询特定版本甚至回滚至早期版本。随着数据湖架构的发展,Delta Lake正逐渐成为管理大规模数据集的关键工具。
166 0