处理对话框
处理对话框 用于提前设置一个对话框处理器,当页面后续弹出 JS 原生对话框(alert、confirm、prompt、onbeforeunload)时,自动点击「确定」或「取消」,避免自动化流程被弹窗卡住。
指令标识:HandleDialog
指令类型:网页指令
指令描述:接受或拒绝 JS 对话框(alert / confirm / prompt / onbeforeunload)
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。处理对话框 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「处理对话框」节点,设置接受/拒绝、提示框输入文本 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.handleDialog(acceptDialog="true") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 点击删除、提交、离开页面时会弹出
confirm确认框,需要自动点「确定」或「取消」。 - 页面会弹
alert提示框,需要自动关闭。 - 页面弹出
prompt输入框,需要自动填入文本并确认。 - 页面带有「离开前确认」(
onbeforeunload),需要自动放行。
重要:对话框处理器必须在弹窗出现 之前 就设置好。所以这个节点要放在「会触发弹窗的操作」(如点击删除按钮)之前。
- 当前已经有打开的页面。
- 已经确认会弹出哪类对话框,以及需要接受还是拒绝。
- 处理对话框节点放在触发弹窗的操作之前。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:点击「删除」按钮会弹出确认框,需要自动点确定。
- 确认页面已经打开并加载完成。
- 添加 处理对话框 节点,设置 是否接受 为接受(确定)。
- 在它之后添加 点击元素,点击「删除」按钮触发确认框。
- 运行后观察确认框是否被自动点掉,删除是否生效。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 是否接受 | acceptDialog | String | 否 | true | true 表示接受(点确定),false 表示拒绝(点取消)。 |
| 提示框输入文本 | promptText | String | 否 | - | 仅对 prompt 类型对话框生效。接受时把该文本作为输入值提交。 |
该指令没有输出变量。它只是注册一个对话框处理器,效果体现在后续动作触发弹窗时被自动处理。
处理对话框节点运行结束后状态为成功。- 运行日志中没有参数缺失、超时或执行失败等错误。
- 后续节点能够继续执行,流程没有因为该节点异常中断。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
| 弹窗没有被处理,流程卡住 | 处理对话框节点放在了触发弹窗的操作之后 | 把「处理对话框」节点移到触发弹窗的操作之前 |
| prompt 输入框没有填入文本 | 未配置「提示框输入文本」,或对话框不是 prompt 类型 | 仅 prompt 类型支持输入文本,确认类型并填写 promptText |
| 点了取消但实际接受了 | acceptDialog 配置反了 | 拒绝时设置 acceptDialog 为 false |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 先设置对话框处理器:接受(点确定)bots.handleDialog(acceptDialog="true")
# 再触发会弹出确认框的操作bots.clickElementMixed(selector="//button[text()='删除']")拒绝对话框(点取消):
bots.handleDialog(acceptDialog="false")处理 prompt 输入框并填入文本:
bots.handleDialog(acceptDialog="true", promptText="确认内容")如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:为什么要在弹窗出现前设置?
Section titled “Q1:为什么要在弹窗出现前设置?”A: 因为处理器是注册到页面上的监听器,只能处理它注册之后弹出的对话框。所以必须先放「处理对话框」节点,再放触发弹窗的动作。
Q2:支持哪些对话框类型?
Section titled “Q2:支持哪些对话框类型?”A: 支持 JS 原生对话框:alert、confirm、prompt,以及离开页面前的 onbeforeunload 确认。它不处理网页自己用 HTML 画的「弹窗 DIV」,那类弹窗请用 点击元素 处理。
Q3:接受和拒绝分别对应什么?
Section titled “Q3:接受和拒绝分别对应什么?”A: 接受相当于点「确定」;拒绝相当于点「取消」。对 prompt 接受时还会把「提示框输入文本」作为输入值提交。