安卓脚本/ios开发软件按键精灵实战:自动定位弹窗广告关闭按钮坐标的通用方案

在编写小程序游戏自动化脚本时,弹窗广告是绕不开的障碍。这些广告弹窗样式差异很大------有大有小,关闭按钮有黑色半透明的也有白色半透明的,但共同点是都会遮挡操作区域,导致脚本无法正常执行后续步骤。

人工操作时,点击右上角的关闭按钮(X)即可,但脚本需要自动完成这一动作,首先得解决一个问题:如何让脚本自动找到关闭按钮的坐标位置?

技术思路

1、寻找弹窗按钮的共性

虽然广告弹窗样式各异,但关闭按钮存在两个可以量化的共性:

  • 形状共性:关闭按钮都是圆形,意味着其所在区域的宽度和高度相等;

  • 尺寸共性:不同弹窗的关闭按钮大小接近,宽度和高度都在一个大致范围内。

2、利用节点属性进行筛选

使用节点查看工具分析广告弹窗的UI结构,会发现这些关闭按钮节点通常没有id、text、desc等属性值,直接通过属性定位比较困难。

但关闭按钮的class属性是ImageView,即图片类型。这样就有了明确的筛选路径:

  1. 先查找页面中所有android.widget.ImageView类型的节点;

  2. 再根据宽高相等、尺寸范围两个条件进行过滤,锁定关闭按钮。

脚本示例:

复制代码
Import "zm.luae"
zm.Init 
dim nodes = zm.ElementFindEx("android.widget.ImageView")
If nodes Then 
  TracePrint "一共找到了", nodes["counts"], "个元素"
  For i = 1 To nodes["counts"]
    TracePrint "节点的宽度和高度",nodes[i]["bounds"][3]-nodes[i]["bounds"][1],nodes[i]["bounds"][4]-nodes[i]["bounds"][2]
    If nodes[i]["bounds"][3] - nodes[i]["bounds"][1] = nodes[i]["bounds"][4] - nodes[i]["bounds"][2] and 60<nodes[i]["bounds"][3]-nodes[i]["bounds"][1]<70 Then 
      TracePrint "第"&i&"个节点宽度和高度相同"
    End If
  Next
Else 
  TracePrint "没有找到元素"
End If

代码逻辑说明

步骤 操作 说明
1 zm.ElementFindEx 查找所有ImageView节点
2 遍历节点列表 逐个计算宽高
3 条件判断 宽=高,且尺寸在60-120px范围内
4 zm.Click 点击匹配节点的中心位置

⚠️ 注意 :尺寸范围60-120需要根据实际设备分辨率做调整,建议先用TracePrint输出所有候选节点的宽高,观察后再设定阈值。

关键要点

节点数量控制 :如果页面中ImageView节点过多,可以进一步缩小尺寸范围,或结合bounds坐标位置(如右上角区域)进行二次筛选。

兼容性处理:部分弹窗可能使用自定义View而非标准ImageView,此时需要扩展搜索的class类型。建议先通过节点查看工具确认目标按钮的实际类型。

循环退出 :找到第一个匹配节点后立即Exit For,避免重复点击。

这个方案的核心思路是放弃依赖id/text等唯一标识,转而利用按钮的几何共性(宽高相等 + 尺寸范围)进行筛选。对于自动化脚本中大量"找不到唯一标识"的场景,这种基于属性组合的筛选策略具有很好的可迁移性。

如果页面中关闭按钮的尺寸范围不好确定,可以先用TracePrint输出所有ImageView节点的宽高数据,观察分布后再设定过滤区间。

作为一款集"视觉AI+自动化+RPA"于一体的移动端超级助手,按键精灵正在重新定义自动化开发。它打通了从零基础到专业开发的全链路:小白可通过可视化编辑器与内置免费OCR引擎,结合无障碍服务快速实现APP签到、识图找字等自动化流程;极客与开发者则能利用Lua脚本、ADB调试及跨平台测试进行深度定制,并借助脚本加密与APK独立打包功能保障代码安全。其核心竞争力在于强大的AI视觉内核------融合OCRex、YOLOv5目标检测与OpenCV图像处理,在复杂动态场景下实现毫秒级精准识图找字。无论是电商运营、批量营销、移动端RPA数据采集,还是高难度的手游多开挂机与自动化测试,按键精灵都能提供企业级的稳定支持。

相关推荐
天空之城--1 小时前
Android Jetpack Compose 状态管理浅析
android·android jetpack
Behaviour3 小时前
iPhone Duo 来了,苹果 Siri AI 接入定制 Gemini
人工智能·ios·语言模型·aigc·iphone
企业数字化笔记5 小时前
固定资产财务账与实物账怎么对账?折旧快照、差异检测与SQL核对
android·数据库·sql
志栋智能6 小时前
超自动化巡检报告:从数据表格到智能洞察
运维·自动化
Splashtop高性能远程控制软件6 小时前
AI 辅助端点运维先接手补丁分级、合规可视和同台处置
运维·网络·人工智能·自动化·远程工作·splashtop
TomEval6 小时前
【接口自动化】12 - 接口自动化进阶
运维·自动化
用户38034165882977 小时前
手写 fMP4 muxer:从 ISO 14496-12 到能播的文件
ios·音视频开发
千里马-horse7 小时前
第 66 章:在 Android 上运行 Windows 游戏
android·aosp
海宇数据8 小时前
零信任架构实战:基于海宇柠檬查出险-登记证构建自动化残值评估网关
人工智能·python·架构·自动化