在 Playwright 中,页面加载和等待策略是自动化测试稳定性的核心。不同的等待策略适用于不同的场景(如静态页面、动态 SPA、AJAX 请求等)。以下是详细解析:
1. 页面加载的生命周期
Playwright 的页面加载过程分为多个阶段,可通过 wait_until
参数控制等待的时机:
阶段 | 触发条件 | 对应事件 |
---|---|---|
domcontentloaded |
DOM 解析完成(无需等待 CSS/图片等资源加载) | document.DOMContentLoaded |
load |
页面所有静态资源(JS/CSS/图片)加载完成 | window.load |
networkidle |
网络空闲(500ms 内无新请求且 ≤2 个未完成请求) | 无原生事件,Playwright 特有 |
commit |
收到 HTTP 响应头,但尚未开始加载 DOM | 底层网络拦截 |
2. 等待策略详解
(1) domcontentloaded
- 用途:当只需要操作 DOM 元素,不关心图片/CSS 是否加载完成时使用。
- 示例:
await page.goto('https://example.com', wait_until='domcontentloaded')
- 适用场景