极奇策RPA技术教程:等待元素出现 (NodeWaitForElement) - 自动化开发与配置详细指南

等待元素出现
📖 节点概述
多功能等待节点,可根据多种条件暂停流程,直到页面上的目标元素满足你设定的条件。支持等待元素出现、消失、变为可见、可点击,甚至可以通过自定义 JavaScript 实现任意条件判断。节点会周期性检查页面,在超时前如果条件满足,流程从“成功”出口继续;超时则走“失败”出口,避免持续等待。
💡 使用场景:
- 动态内容就绪:等待异步加载的搜索结果、商品列表出现后,再开始抓取数据。
- 加载状态监控:等待页面上的“加载中”遮罩或旋转图标消失,表示数据加载完成。
- 按钮可操作:等待“提交”按钮变为可点击状态(灰色变亮、验证码通过),再执行点击。
- 自定义校验:通过自定义 JS 条件,例如检查页面中某个全局变量是否已定义,或页面高度达到指定值。
- 元素数量确认:要求至少匹配 N 个元素,确保列表完整加载。
🎮 实战连线指南:如何正确使用它?
节点默认操作当前活动标签页。你需要提供一个元素定位器(CSS 或 XPath),然后选择要等待的条件。节点会根据条件自动显示或隐藏一些辅助参数(如最少匹配个数、包含文本、属性检查等)。执行时,节点会反复检查元素状态,一旦满足条件或超时,便从对应出口继续流程。
场景案例:等待搜索结果列表出现并至少包含 5 条数据
- 导航到搜索页:使用【访问网址】进入搜索结果页面。
- 配置等待:将导航完成的
Exec输出连接到【等待元素出现】的Exec输入。- “元素定位”填入每个搜索条目的选择器,如
.search-item。 - “等待条件”选择
元素出现。 - 此时节点下方会出现“最少匹配个数”输入框,将其设为
5(确保至少 5 条结果加载出来)。
- “元素定位”填入每个搜索条目的选择器,如
- 处理结果:将
成功出口连接到后续的【网页元素内容提取】节点,抓取标题和链接。将失败出口连接到【显示通知】,提示“搜索结果加载超时”。 - 执行:流程会反复检查页面上
.search-item的数量,一旦大于等于 5 就立即放行;如果 15 秒后仍不满足,则走失败分支。
场景案例:等待页面加载遮罩消失
- 定位遮罩元素:找到加载动画的选择器,如
.loading-spinner。 - 切换条件:“等待条件”选择
元素消失。 - 执行:节点会不断尝试定位该元素。一旦该元素消失(或隐藏、零尺寸),条件立即满足,流程继续。无需填写最少个数、文本等参数。
场景案例:使用自定义 JS 等待特定状态
- 切换条件:“等待条件”选择
自定义JS条件,此时会出现“自定义JS”多行输入框。 - 编写判断函数:例如检查是否某个全局变量
window.__dataReady === true,函数返回true即表示条件满足。函数会接收到当前元素对象和匹配个数作为参数。 - 执行:节点会反复执行这个 JS 函数,直到返回真值。
⚙️ 引脚与参数说明
📥 输入引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| Exec | EXEC | 控制流入口,触发后开始等待。 |
| Tab | TAB | (可选) 指定操作的标签页,不连则使用当前活动标签页。 |
| 元素定位 | LOCATOR | 要监控的目标元素定位表达式。等待元素消失时仍需提供,节点会检测该元素是否还存在。支持备选定位列表。 |
⚙️ 控件参数
| 控件名称 | 类型 | 说明 |
|---|---|---|
| 等待条件 | 下拉选择 | 决定等待的具体目标:<br>• 元素出现:元素在 DOM 中存在。<br>• 元素消失:元素不存在或隐藏/零尺寸。<br>• 元素可见:元素在页面上可见(非隐藏、有尺寸)。<br>• 元素可点击:可见且未被 disabled,且可接收指针事件。<br>• 自定义JS条件:执行自定义判断函数,返回 true 时满足。 |
| 超时(ms) | 数字 | (高级) 单次等待的超时毫秒数,默认 15000。 |
| 间隔(ms) | 数字 | (高级) 检查元素状态的频率,默认 200ms。 |
| 重试 | 数字 | (高级) 超时后自动重新等待的次数,默认 2。总等待时间 ≈ 超时 × (重试+1)。 |
| 忽略报错 | 开关 | (高级) 开启后,超时时不抛出异常,而是自动从“失败”出口继续。 |
⚙️ 动态参数(根据等待条件自动显示/隐藏)
| 参数名称 | 显示条件 | 说明 |
|---|---|---|
| 最少匹配个数 | 元素出现/可见/可点击 | 要求至少匹配到多少个元素(默认1),例如设为5表示必须存在5个同类元素。可通过连线传入。 |
| 包含文本 | 元素出现/可见/可点击 | 要求匹配的元素文本内容必须包含指定字符串。 |
| 属性=值 | 元素出现/可见/可点击 | 例如输入class=active,则要求元素拥有该属性且值匹配。 |
| 自定义JS | 自定义JS条件 | 输入一个函数体,接收el(当前元素)和 count(匹配个数)作为参数,返回 true/false。可直接访问全局变量。 |
📤 输出引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 成功 | EXEC | 等待条件满足时触发。 |
| 失败 | EXEC | 超时且开启“忽略报错”时触发。否则会抛出异常。 |
| 元素对象 | ANY | 成功时输出首个匹配元素的内部对象标识,可用于调试或高级操作。 |
| 是否超时 | BOOL | 流程结束时是否发生了超时。False 表示成功。 |
💎 小贴士:
- 如果你需要等待多个不同条件,可以串联多个本节点,每个设置不同的等待条件和定位器。
- “元素消失”条件不需要填写“最少匹配个数”等辅助参数,节点会自动判断元素是否从 DOM 中消失或变为不可见。
- 自定义 JS 条件提供了灵活性,可以检查页面状态,比如某个变量的值、网络请求状态等。
- 建议根据页面实际加载速度调整“超时”和“重试”次数,避免过短导致误判或过长导致流程卡顿。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

