触控魔方 / 使用文档 / 实战配方

有弹窗就关掉,没有就继续

实战配方 · 使用文档

它解决什么问题

广告弹窗、更新提示、评分请求、权限询问 —— 出现才处理,不出现别让任务卡住。

难点不是「点关闭」,是「不确定它来不来」。如果每次都硬等 5 秒,十次里九次在空等;如果不等,弹窗一出任务就点歪。

这条配方用「智能等待节点」的两条输出解决:等到就走处理分支,超时就走正常分支。

核心:智能等待节点有两个出口

参数 waitType 有四档:

值 等什么
text_contains 屏幕上出现包含某段文字的控件
text_equals 屏幕上出现文字完全一致的控件
element_visible 某个元素可见
element_gone 某个元素消失

关键在输出口:它有 exec_success 和 exec_failure 两条执行输出。

这就是「有就处理、没有就继续」的全部机制,不需要额外的判断节点。

分步做

1. 弹窗的特征文字要挑准

「关闭」「取消」「以后再说」「我知道了」 —— 选那个只在弹窗上出现的词。

别用「确定」:正常页面上的确定按钮太多了。也别用单个字「关」。

2. 加「智能等待节点」

参数 填什么
等待条件 waitType text_contains
文字 text 弹窗上的特征文字
超时 timeout 3000 毫秒

超时值就是「最多愿意为这件事等多久」。设 3000 的意思是:3 秒内没等到就当它不存在,立刻往下走。

3. 两条分支各接什么

两条分支最终都要汇回主流程。汇合点就是原来的下一个动作。

4. 多个弹窗叠加怎么办

三种常见弹窗(广告 / 更新 / 评分)就串三个「智能等待节点」,一个接一个。

顺序按出现概率排:先等最常见的那个。每个超时都设短一点(2000 毫秒),三个加起来最多 6 秒,可接受。

但别串超过三个。每多一个就多一次截图识别,任务整体变慢,而且真正的失败会被拖到很久之后才暴露。

5. 需要「点完确认真的关了」再加一层

关闭按钮有时会点歪(弹窗动画中位置还在动)。点完之后再放一个「智能等待节点」,这次等 element_gone(弹窗文字消失),超时 2000 毫秒。

等不到就说明没关掉,可以重试一次或者记一条日志。

用到的节点

节点 干什么
智能等待节点 等到 / 超时两条出口,配方的核心
查找文本节点 定位弹窗按钮的坐标
点击节点 点关闭
延迟节点 等弹窗动画、等关闭完成
发送通知节点 可选:关不掉时通知你

容易踩的坑