waitForNavigation([options])
等待指定的导航生命周期事件发生,并返回主资源响应。
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
options | object | null | |
options.timeout | number | 30000 | 最大时间(毫秒)。传递 0 可禁用超时。默认值会被 BrowserContext 或 Page 上的 setDefaultTimeout 选项覆盖。 |
options.waitUntil | string | load | 何时认为操作已成功。有关更多详细信息,请参阅 事件。 |
活动
注意
不建议使用
networkidle
。特别是对于网络流量频繁的网站,事件可能永远不会触发,请勿将此方法用于测试,而应依赖于 Web 断言来评估准备状态。
事件可以是
'domcontentloaded'
- 当DOMContentLoaded
事件触发时,认为操作完成。'load'
- 当load
事件触发时,认为操作完成。'networkidle'
- 当至少500
毫秒内没有网络连接时,认为操作完成。
返回值
类型 | 描述 |
---|---|
Promise<null | Response> | 与页面关联的 Response 实例。否则,返回 null |
示例
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 () {
const 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 Promise.all([
submitButton.click(),
page.waitForNavigation(),
]);
await check(page.locator('h2'), {
header: async h2 => await h2.textContent() == 'Welcome, admin!'
});
} finally {
await page.close();
}
}