基本上,如果未找到元素,我希望剧作家等待每个元素 5 秒。
有一种方法可以单独更改超时,如下所示:
await page.waitForSelector('h1', { timeout: 5000 });
但我只想在全局范围内定义一次,而不是在每个元素中定义它。
提前致谢。
可以使用以下方法为每个接受超时设置的方法设置超时:
browserContext.setDefaultTimeout(timeout)
“browserContext”可能比“page”等价物稍微好一些,因为它是在整个 browserContext 中设置的。如果您想覆盖更广泛的 browserContext 设置,您始终可以使用页面设置。
如果您想要与其他方法不同的导航超时,也许在模拟慢速连接速度时,您还可以设置:
browserContext.setDefaultNavigationTimeout(timeout)
这将优先用于导航。
使用 Playwright Test Runner 时,您可以通过创建 playwright.config.js 文件来全局设置整个测试的超时。
这里有关于具体超时设置的文档:
https://playwright.dev/docs/test-intro#use-test-hooks
但他们示例的简化版本是:
// playwright.config.js
module.exports = {
// Each test is given 30 seconds
timeout: 30000,
use: {
// Configure browser and context here
},
};
根据文档,您可以专门为
expect
设置另一个超时:
const config: PlaywrightTestConfig = {
// General timeout per test
timeout: 60000,
// For browser actions
use: {
actionTimeout: 20000,
},
// For expect calls
expect: {
timeout: 10000, // <---------
},
}
https://playwright.dev/docs/test-assertions#locator-assertions-to-be-visible
您可以设置这些“每页”默认超时。这不是全局设置,但至少您可以“每页”设置它,而不必在每个方法调用中设置它:
page.setDefaultTimeout( timeout )
:
此设置将更改所有方法的默认最大时间 接受超时选项
page.setDefaultNavigationTimeout( timeout )
:
此设置将更改默认的最大导航时间 以下方法及相关快捷键:
page.goBack([选项])
page.goForward([选项])
page.goto(url[, 选项])
page.reload([选项])
page.setContent(html[, 选项])
page.waitForNavigation([选项])
page.waitForURL(url[, 选项])
playwright.config.ts
文件中:import { PlaywrightTestConfig } from '@playwright/test';
const config: PlaywrightTestConfig = {
globalTimeout: 60000, // Maximum time the whole test suite can run,
timeout: 5000, // Timeout for each test
};
export default config;
也可以为单个测试配置超时。这看起来像
test('nieuwe opportity met verplichte velden@nu', async ({ page }) => {
//test.slow(); triples the default timeout
test.setTimeout(60 * 1000); // sets timeout to 60 seconds for this test
await page.locator ('yourlocator').toContainText( 'yourtest');
// more test with the same timeout
});