跳到主要内容

第 03 课 · 查找并点击

产品中最常用的双节点惯用法:找到它,然后在找到的位置点它。

问题

第 01–02 课里你手画点击区域。它能用——直到按钮挪了位置。换个分辨率、改个布局、滚动一下列表,你的矩形就点在空处。

解决办法是不再告诉流程按钮在哪里,而是告诉它按钮长什么样。检测找到它;Click 借用命中位置。

你将学到

  • 把 Click 的 coordinate source(坐标来源)接到 Find Image 结果上。
  • 两个节点之间实际流动的是什么数据。
  • 把"它不在"当作一等公民的结局来处理。
  • 在 Properties 面板阅读节点配置。

开始之前

  • 完成第 02 课
  • Practice App 在 dashboard.html

流程

编辑器中的第 03 课流程

动手构建

  1. 新建流程。添加 Find Image,命名 1. Find the Collect icon。把 Collect 按钮的绿色对勾图标截为模板。Threshold 0.88,timeout 5000 ms。
  2. 添加 Click,命名 2. Tap exactly where it matched。在 Properties 中把 Coordinate source 设为该 Find Image 节点——不是手画区域。
  3. 添加 Stop: success(消息 Collected)和 Stop: not on this screenfailure)。
  4. 连线:Find Image Success → Click,Failure → 失败 Stop;Click Success → 成功 Stop。
  5. Save,Auto Layout。

这是选中 Find Image 节点后的样子,Properties 面板一览其全部配置——模板、阈值与搜索区域一目了然:

选中的 Find Image 节点及其 Properties 面板

为什么用这些节点——以及它们之间传什么

节点角色向后传递什么
Find Image轮询新截图直到模板命中记录在案的结果:命中中心、矩形、置信度
Click从那份记录解析出点击点控制权

这是第一次有节点消费另一个节点的输出。运行时把每个节点的结果记入运行上下文;Click 执行时查出 Find Image 记录的命中并点其中心。

两个推论:

  • 顺序很重要。 Find Image 必须已在本路径上先执行。来源从未运行(或从未命中)的 Click 会走 Failure——无处可点。
  • 流程里没有坐标。 挪按钮、换分辨率、滚动面板——只要模板还能命中,点击就跟着走。
当你确实需要数字时

Click 直接读命中结果——不需要变量。若某天你要坐标做算术或写日志,Find Image 的 Save results to variables 会把 centerX/centerY 等绑定到命名变量。那正是第 05 课在其上搭建的机制。

运行

在仪表盘上,预期:约 300 ms 命中、点击、success · Collected——模拟器跳转到 Targets 页面(Collect 就是干这个的)。

然后把仪表盘滚走或打开 verify.html 再运行:5 秒无命中 → failure · Collect icon not found。流程处理了缺席,而不是对着虚空盲点。

最佳实践

  • 凡可能移动之物,优先用 Find Image 来源而非手画区域。 只对真正固定的界面框架画区域。
  • 永远连上 Failure 端口。 "不在"是正常结局;没连线的路由会让运行以笼统错误结束,而不是你的消息。
  • 模板贴紧。 图标本身,而不是带文字的按钮——图标能挺过文字与布局的变化。
  • 阈值从 0.88 起步,用 Test Node 看真实置信度再调。
  • 超时要诚实。 5000 ms 的意思是"这图标合理情况下最多 5 秒才出现"。若它非有即无,1500–2000 ms 能在每次阴性运行里省下时间。

常见错误

错误后果修复
Click 的来源节点未在本路径运行Click 走 Failure在同一分支上把 Find Image 排在 Click 之前
只连 Success"未找到"以 TRANSITION_NOT_FOUND 杀死运行Failure 连到 Stop
模板带背景什么一挪置信度就掉重截紧裁剪
给 Find Image 加重试想"找得更狠"重试永不触发——未找到的状态是 success改为加大超时

故障排查

图标明明在屏幕上,Find Image 却不命中。Test Node 读报告的置信度。远低于 0.88 → 模板带了背景或截图时缩放不同;重截。

命中了错误位置。 在按钮行上加 search region——搜索面积更小、误报更少,还更快。

点击略偏离图标。 它点的是命中中心。想点偏移目标(图标下的文字),用 Click 的 Click Offset——见 Click

小结

  • 检测负责找;操作消费记录下的命中。流程里没有坐标。
  • 来源节点必须在同一路径上先执行(并命中),后面的节点才能读它。
  • 连上 Failure。缺席是信息,不是错误。

下一课

有些元素本来就时有时无——每日弹窗、限时优惠。第 04 课 · 处理可选弹窗构建两种结局都正确的分支。

另见:Find Image · Click · 流程解剖