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

如何在Playwright中等待页面特定脚本加载?

在Playwright中实现类似Cypress cy.intercept + cy.wait的功能

对应你在Cypress里用cy.intercept拦截并等待指定脚本加载的需求,Playwright可以通过以下方式实现:

方式一:直接等待请求完成(最简洁)

如果只是单纯等待目标GET请求加载完成,用page.waitForRequest即可,直接匹配URL并设置超时:

await page.waitForRequest('https://hello.com/script.js', { timeout: 20000 });

方式二:精确匹配请求方法

如果需要严格确保是GET请求,可以用回调函数做更精准的匹配:

await page.waitForRequest(request => 
  request.method() === 'GET' && request.url() === 'https://hello.com/script.js',
  { timeout: 20000 }
);

方式三:结合路由拦截(需修改响应时用)

如果需要像cy.intercept那样对请求做自定义处理(比如修改响应内容),可以结合page.route和request.finished()来等待请求完成:

// 拦截目标请求
page.route('https://hello.com/script.js', async route => {
  // 可在这里自定义处理,比如修改请求头、响应等
  await route.continue();
  // 等待请求完成
  await route.request().finished();
});

// 触发页面操作后,请求会被拦截并自动等待完成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:32:04