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']
})
我正在尝试为动态 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']
})