waitForLoadState(state[, options])
注意
此方法存在已知问题。有关详细信息,请参阅 #880。
此方法等待达到给定的加载状态。如果该生命周期事件已收到,它将立即解除阻塞。
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
state | string | load | 可选的加载状态,等待其达到。有关详细信息,请参阅事件。 |
options | object | null | |
options.timeout | number | 30000 | 最大时间(毫秒)。传递 0 可禁用超时。默认值将被 BrowserContext 或 Page 上的 setDefaultTimeout 选项覆盖。 |
活动
注意
不推荐使用
networkidle
。不要使用此方法进行测试,特别是对于那些事件可能永远不会触发的“话痨”网站,请改为依赖 web 断言来评估就绪状态。
事件可以是以下之一:
'domcontentloaded'
- 当DOMContentLoaded
事件触发时,认为操作完成。'load'
- 当load
事件触发时,认为操作完成。'networkidle'
- 当至少500
毫秒内没有网络连接时,认为操作完成。
返回值
类型 | 描述 |
---|---|
Promise<void> | 一个在达到加载状态时 fulfilled 的 Promise。 |
示例
import { browser } from 'k6/browser';
import { check } from 'https://jslib.k6.io/k6-utils/1.5.0/index.js';
export const options = {
scenarios: {
browser: {
executor: 'shared-iterations',
options: {
browser: {
type: 'chromium',
},
},
},
},
};
export default async function () {
let page = await browser.newPage();
try {
await page.goto('https://test.k6.io/my_messages.php');
await page.locator('input[name="login"]').type('admin');
await page.locator('input[name="password"]').type('123');
const submitButton = page.locator('input[type="submit"]');
await submitButton.click();
await page.waitForLoadState('networkidle'); // waits until the `networkidle` event
await check(page.locator('h2'), {
'header': async h2 => await h2.textContent() == 'Welcome, admin!'
});
} finally {
await page.close();
}
}