我正在使用Puppeteer api(https://github.com/GoogleChrome/puppeteer) 用于自动化测试。
我想听所有的http响应,每个URL都需要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,有时我却看不到。
我很高兴知道我做错了什么事
答案 0 :(得分:1)
除非您试图获取匹配请求对象的URL,否则无需调用response.request()
。
以下解决方案可以正常工作:
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);
});