原生弹窗处理
原生弹窗处理节点用于自动响应浏览器的 alert、confirm、prompt 弹窗,避免弹窗阻塞后续节点执行。
概述
页面中的原生弹窗会阻塞 JavaScript 主线程,不处理则后续节点无法执行。本节点预先注册拦截器,通过正则表达式匹配弹窗消息内容,匹配时自动执行预设操作。
关键:拦截器必须在弹窗出现之前注册。因此本节点应放在会触发弹窗的操作节点之前。
使用方法
拖入节点后,配置以下三项:
消息匹配
正则表达式,用于匹配弹窗中显示的文本内容。面板默认 /pattern/i 表示不区分大小写。
- 填写具体关键词,如
删除,则只匹配包含"删除"的弹窗 - 填写
.*或留空,匹配所有弹窗 - 调试时建议先用
.*确认拦截器正常工作,再收紧正则
弹窗操作
选择弹窗出现时自动执行的操作:
| 操作 | 适用弹窗类型 | 效果 |
|---|---|---|
| 确定 | alert / confirm / prompt | 相当于点击"确定"按钮 |
| 取消 | confirm / prompt | 相当于点击"取消"按钮 |
对
alert弹窗只能点确定——它没有取消按钮。
输入文本
仅对 prompt 弹窗生效。弹窗出现时自动在输入框中填入的文本。支持 {{变量名}} 引用。
节点位置
处理弹窗必须放在触发弹窗的节点之前,否则无效。
原因在于原生弹窗(alert / confirm / prompt)会阻塞 JavaScript 主线程。流程按连线顺序执行:
- 先经过「处理弹窗」节点 → 此时拦截器注册完成,开始监听
- 再经过「点击元素」节点 → 点击触发弹窗 → 拦截器立刻捕获并自动处理
反过来,如果先点击再处理,弹窗弹出后主线程已被阻塞,后续节点根本执行不到,拦截器就永远不会注册。这就是为什么顺序不能反。
参数参考
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 消息匹配 | 文本 | — | 正则表达式,匹配弹窗中显示的文本内容。支持标准正则语法,面板中 /pattern/i 表示不区分大小写 |
| 弹窗操作 | 下拉选择 | — | 确定 — 点击确定(对 alert 生效);取消 — 点击取消(对 confirm 生效) |
| 输入文本 | 文本 | — | prompt 弹窗时自动填入的文本。支持 {{变量名}} 引用,详见变量名 |
常见问题
弹窗仍然阻塞了流程
现象:配置了处理弹窗节点,但弹窗出现后流程仍然卡住。
原因:处理弹窗节点的位置在触发弹窗的节点之后——拦截器必须在弹窗出现前注册。
解决:确保处理弹窗节点在流程连线上位于触发弹窗的节点之前(先注册拦截器,再触发弹窗)。
正则匹配不到弹窗内容
现象:弹窗文字明显包含关键词但没被拦截。
原因:正则表达式写错,或大小写敏感导致匹配失败。
解决:面板中 /i 标志已默认开启不区分大小写。如需调试,先用简单正则如 .* 匹配所有弹窗确认拦截器本身正常工作,再逐步收紧正则。