You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免Playwright测试30秒超时并设置15分钟等待时长?

解决Playwright长时间等待触发测试超时的问题

你的问题核心是Playwright默认的测试超时时间(30秒)远短于你要等待的15分钟,导致测试还没完成等待就先超时了,和page.waitForTimeout()本身无关。下面是具体解决方法:

1. 给单个测试单独设置超时

如果只是个别测试需要长时间等待,直接在测试用例里调整超时时间,留一点冗余避免刚好卡时间:

test('需要长时间等待的测试', async ({ page }) => {
  // 设置测试超时为15分10秒(比等待时间多10秒)
  test.setTimeout(910000);
  // 等待15分钟
  await page.waitForTimeout(900000);
  // 后续业务操作
});

其他语言对应调整:

  • Python:test.set_timeout(910000)
  • Java:test.setTimeout(910000);

2. 全局修改测试超时(不推荐)

如果所有测试都需要长超时,可在配置文件里调整全局超时:

// playwright.config.js
module.exports = {
  testDir: './tests',
  // 全局设置每个测试的超时时间为15分10秒
  timeout: 910000,
  // 其他配置项...
};

3. 优先用智能等待替代固定时长

实际测试中尽量避免固定长时间等待,这种方式既低效又不可靠。建议换成等待特定条件:

  • 等待元素出现:await page.waitForSelector('#target-element', { timeout: 900000 });
  • 等待响应:await page.waitForResponse(resp => resp.url().includes('api/finish') && resp.ok(), { timeout: 900000 });
    只有在必须等待固定时长的场景(比如定时任务触发),再用page.waitForTimeout()。

内容的提问来源于stack exchange,提问作者Enigmatrix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:41:01