Puppeteer:覆盖 API 请求并使用模拟数据响应,无需其他包

Puppeteer: Override API Requests and respond with mock data without another package

我正在尝试为动态 Vue 应用程序获取 puppeteer 的模拟数据。

这是我的(带占位符 API 网址):

await page.setRequestInterception(true)
    page.on('request', (request) => {
      console.log(request.url())
      if (request.url() === 'URL HERE') {
        request.respond({
          status: 200,
          content: 'application/json',
          body: JSON.stringify(MockData.image)
        })
      } else if (request.url() === 'URL HERE') {
        request.respond({
          status: 200,
          content: 'application/json',
          body: JSON.stringify(MockData.text)
        })
      } else {
        request.continue()
      }
    })

此代码段位于请求通过的所有逻辑之上,并且 URL 是正确的。

模拟呼叫似乎没有完成或无法正确通过。这是我的设置问题吗?

解决方案是在禁用 chromium 安全性的情况下调用启动。

browser = await puppeteer.launch({
  args: ['--disable-web-security']
})