等待页面加载
等待页面加载 用于等待当前页面达到指定加载状态。它适合放在打开网页、导航到 URL、刷新网页或点击后发生页面跳转的位置,帮助后续点击、输入、读取更稳定。
指令标识:WaitPageState
指令类型:网页指令
指令描述:等待页面加载完成
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。等待页面加载 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「等待页面加载」节点,在表单里设置加载状态、超时时间 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.waitPageState(loadState="LOAD") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 打开网页后,先等待页面完成初始加载。
- 点击菜单、分页、查询按钮后,页面发生整体跳转或刷新。
- 刷新页面后,等待新内容加载完成。
- 后续要读取页面标题、URL 或页面级内容。
如果下一步要操作某个具体按钮、输入框或列表区域,通常还需要再接 等待元素存在,因为页面加载完成不等于目标元素一定已经出现。
- 当前已经有浏览器页面。
- 上一步确实会触发页面加载、跳转或刷新。
- 如果页面是长连接、轮询或持续请求的单页应用,谨慎使用
NETWORKIDLE。 - 页面加载完成后,仍建议用关键元素验证业务状态。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”- 在 打开网页、导航到 URL、刷新网页 或会触发跳转的 点击元素 后添加 等待页面加载。
- 普通页面默认选择
LOAD。 - 如果只需要 DOM 元素可操作,可以选择
DOMCONTENTLOADED。 - 如果页面依赖异步请求加载数据,可以尝试
NETWORKIDLE,但不要把它当成所有页面的默认选择。 - 设置超时时间,例如
30000ms。
一个跳转类 RPA 可以这样配置:
- 打开网页:进入目标网站。
- 点击元素:点击导航入口或查询按钮。
- 等待页面加载:等待页面达到
LOAD或DOMCONTENTLOADED状态。 - 等待元素存在:等待跳转后的关键区域出现。
- 获取文本:读取页面结果。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 加载状态 | loadState | Enum | 是 | LOAD | 页面等待状态:LOAD(加载完成)、DOMCONTENTLOADED(构建DOM树之后、样式加载完成之前)、NETWORKIDLE(网络空闲)。 |
| 等待可选项 | waitForLoadStateOptions | JSON | 否 | - | 高级选项。等待加载状态的高级配置,可设置超时时间(timeout,单位毫秒)等。 |
该指令没有业务输出变量,主要作用是等待当前页面状态变化。是否成功应通过运行日志、后续等待元素节点或读取结果判断。
加载状态怎么选?
Section titled “加载状态怎么选?”| 状态 | 适合场景 | 注意事项 |
|---|---|---|
LOAD | 普通页面跳转、打开新页面、刷新页面 | 最通用,适合新手默认选择 |
DOMCONTENTLOADED | 只需要 DOM 结构可用,不必等图片等资源 | 更快,但页面数据可能还没完全渲染 |
NETWORKIDLE | 点击查询后等待异步请求基本结束 | 长连接、轮询页面可能等不到;系统会做超时兜底 |
- 等待节点执行成功,没有超时错误。
- 页面不再处于明显加载中、白屏或跳转中。
- 后续等待元素、点击、输入或读取节点能继续执行。
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| 等待超时 | 页面加载慢、网络异常、目标站点无响应 | 先手动打开页面确认可访问,再适当调大超时时间 |
NETWORKIDLE 经常超时 | 页面有长连接、轮询或持续请求 | 改用 LOAD 或 DOMCONTENTLOADED,再接等待元素 |
| 等待成功但后续找不到元素 | 页面状态到了,但业务内容还没渲染 | 在后面增加等待元素存在 |
| 页面跳转到登录页或错误页 | 登录态失效、权限不足、被重定向 | 检查账号、环境和 URL |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
bots.openUrl(url="https://example.com")
# 等待页面加载状态:loadState 支持 LOAD / DOMCONTENTLOADED / NETWORKIDLEbots.waitPageState(loadState="LOAD")
# 如需自定义超时,可通过 waitForLoadStateOptions 配置bots.waitPageState( loadState="LOAD", waitForLoadStateOptions='{"timeout": 30000}',)如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:不同的加载状态有什么区别?
Section titled “Q1:不同的加载状态有什么区别?”A: LOAD 等待页面 load 事件,DOMCONTENTLOADED 等待 DOM 结构完成,NETWORKIDLE 等待网络进入相对空闲状态。
Q2:应该选择哪种加载状态?
Section titled “Q2:应该选择哪种加载状态?”A: 新手默认选 LOAD。如果页面很重但目标元素很快出现,可以选 DOMCONTENTLOADED 后再等待元素;如果确实要等异步请求完成,再考虑 NETWORKIDLE。
Q3:超时时间如何设置?
Section titled “Q3:超时时间如何设置?”A: 可以通过「等待可选项」(waitForLoadStateOptions)中的 timeout 配置超时时间,防止页面加载异常时无限等待。
Q4:页面加载成功是不是代表元素一定能操作?
Section titled “Q4:页面加载成功是不是代表元素一定能操作?”A: 不是。页面加载状态是浏览器层面的信号,目标按钮或列表可能还在异步渲染。关键操作前仍建议使用 等待元素存在。