我正在使用 Puppeteer api ( https://github.com/GoogleChrome/puppeteer ) 用于自动化测试。
我想监听所有的 http 响应,需要每个响应的 url 和响应数据。
我尝试使用 page.on('response') 函数:
page.on('response', response => {
response.text().then( textBody=> {
const req = response.request();;
console.log(req.url())
console.log(textBody)
});
})
是否应在“waitForSelector”函数中进行处理,以标记数据已准备就绪?
我尝试这样做。
问题是有时我看不到任何 console.log,有时我看到。
我很高兴知道我做错了什么?
最佳答案
无需调用response.request()
,除非您正在尝试获取匹配请求对象的 URL。
以下解决方案可以正常工作:
page.on('response', response => {
console.log('Response URL:', response.url());
response.text().then(data => {
console.log('Response Text:');
console.log(data);
});
});
如果您仍然遇到问题,可能是因为关联的请求失败了。
您可以通过监听 requestfailed
来检查此错误事件并记录结果:
page.on('requestfailed', request => {
console.log('Failed Request URL:', request.url());
console.log('Failed Request Error Message:', request.failure().errorText);
});
关于javascript - Puppeteer ,监听网络响应变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51761899/