跳到主要内容

原生弹窗处理

原生弹窗处理节点用于自动响应浏览器的 alertconfirmprompt 弹窗,避免弹窗阻塞后续节点执行。

概述

页面中的原生弹窗会阻塞 JavaScript 主线程,不处理则后续节点无法执行。本节点预先注册拦截器,通过正则表达式匹配弹窗消息内容,匹配时自动执行预设操作。

关键:拦截器必须在弹窗出现之前注册。因此本节点应放在会触发弹窗的操作节点之前

原生弹窗处理节点参数配置面板

使用方法

拖入节点后,配置以下三项:

消息匹配

正则表达式,用于匹配弹窗中显示的文本内容。面板默认 /pattern/i 表示不区分大小写。

  • 填写具体关键词,如 删除,则只匹配包含"删除"的弹窗
  • 填写 .* 或留空,匹配所有弹窗
  • 调试时建议先用 .* 确认拦截器正常工作,再收紧正则

弹窗操作

选择弹窗出现时自动执行的操作:

操作适用弹窗类型效果
确定alert / confirm / prompt相当于点击"确定"按钮
取消confirm / prompt相当于点击"取消"按钮

alert 弹窗只能点确定——它没有取消按钮。

输入文本

仅对 prompt 弹窗生效。弹窗出现时自动在输入框中填入的文本。支持 {{变量名}} 引用。

节点位置

处理弹窗必须放在触发弹窗的节点之前,否则无效。

原因在于原生弹窗(alert / confirm / prompt)会阻塞 JavaScript 主线程。流程按连线顺序执行:

  1. 先经过「处理弹窗」节点 → 此时拦截器注册完成,开始监听
  2. 再经过「点击元素」节点 → 点击触发弹窗 → 拦截器立刻捕获并自动处理

反过来,如果先点击再处理,弹窗弹出后主线程已被阻塞,后续节点根本执行不到,拦截器就永远不会注册。这就是为什么顺序不能反。

正确顺序:处理弹窗在前,点击元素在后

参数参考

参数类型默认值说明
消息匹配文本正则表达式,匹配弹窗中显示的文本内容。支持标准正则语法,面板中 /pattern/i 表示不区分大小写
弹窗操作下拉选择确定 — 点击确定(对 alert 生效);取消 — 点击取消(对 confirm 生效)
输入文本文本prompt 弹窗时自动填入的文本。支持 {{变量名}} 引用,详见变量名

常见问题

弹窗仍然阻塞了流程

现象:配置了处理弹窗节点,但弹窗出现后流程仍然卡住。

原因:处理弹窗节点的位置在触发弹窗的节点之后——拦截器必须在弹窗出现前注册。

解决:确保处理弹窗节点在流程连线上位于触发弹窗的节点之前(先注册拦截器,再触发弹窗)。

正则匹配不到弹窗内容

现象:弹窗文字明显包含关键词但没被拦截。

原因:正则表达式写错,或大小写敏感导致匹配失败。

解决:面板中 /i 标志已默认开启不区分大小写。如需调试,先用简单正则如 .* 匹配所有弹窗确认拦截器本身正常工作,再逐步收紧正则。