安卓脚本/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数据采集,还是高难度的手游多开挂机与自动化测试,按键精灵都能提供企业级的稳定支持。

相关推荐
乌萨达9 小时前
手机模拟器安卓怎么用?电脑安装应用、玩手游与账号同步指南
android·智能手机·电脑·雷电模拟器
IT小白杨9 小时前
市场调研的自动化访问,怎样控制节奏才不被误判?
运维·经验分享·安全·自动化·指纹浏览器
美狐美颜SDK开放平台10 小时前
Android与iOS直播APP美颜有什么区别?视频美颜SDK开发详解
android·ios·音视频·视频美颜sdk
挨踢诗人11 小时前
Udesk集成金蝶云星空解决方案
自动化
春猿火12 小时前
某市-2026【网安·论道】misc-afterimage_note-wp
android
DianSan_ERP13 小时前
多平台订单自动下载与回传的技术实现:从消息推送到状态闭环引言
java·linux·服务器·前端·网络·架构·自动化
恋猫de小郭13 小时前
Shopify 回应为什么从 RN 回到原生,为什么不用 KMP ?
android·前端·flutter
fundroid14 小时前
Android AI 开发,真正拉开差距的是工程闭环
android·ai·大模型·agent
脚踏实地,坚持不懈!14 小时前
Android 面试题全解(结合 AOSP 源码 · 截至 Android 17 / API 37)
android
NailiConveyor15 小时前
输送机皮带材质选型指南:PVC、PU、橡胶、模块化塑料各适用什么场景?
大数据·运维·自动化·制造·业界资讯·材质