waitForResponse
方法时,确实可以通过 response.json()
来解析响应的 JSON 数据。以下是一个完整的代码示例:
const { chromium } = require('playwright'); (async () => { // 启动浏览器 const browser = await chromium.launch(); // 打开新页面 const page = await browser.newPage(); // 导航到目标网页 await page.goto('https://example.com'); // 等待特定的请求并获取响应数据 const response = await page.waitForResponse(response => { // 检查请求的 URL 是否符合预期 return response.url() === 'https://example.com/api/data' && response.status() === 200; }); // 获取响应数据 try { const responseBody = await response.json(); // 如果响应是 JSON 格式 console.log('Response Body:', responseBody); } catch (error) { console.error('Failed to parse JSON response:', error); } // 关闭浏览器 await browser.close(); })();
在这个示例中:
chromium.launch()
启动浏览器。browser.newPage()
打开一个新页面。page.goto('https://example.com')
导航到目标网页。page.waitForResponse
等待特定的请求。这里通过检查请求的 URL 和状态码来确定是否是需要的响应。await response.json()
获取响应的 JSON 数据,并打印出来。如果解析失败,会捕获异常并打印错误信息。try...catch
块来捕获可能的解析错误,确保程序不会因为解析失败而崩溃。response.json()
会抛出错误。如果不确定响应格式,可以先使用 response.text()
获取原始响应文本,再进行进一步处理。标签: 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。