在Playwright中,你可以使用page.waitForResponse()
方法来等待一个特定的网络请求,并获取其响应。然后,你可以使用response.json()
方法来获取响应的JSON数据。以下是一个例子:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
// 开始网络请求
page.goto('https://example.com');
// 等待一个特定的网络请求
const response = await page.waitForResponse(response => response.url().includes('your-request-url'));
// 获取响应的JSON数据
const data = await response.json();
console.log(data);
await browser.close();
})();
在这个例子中,your-request-url
应该替换为你想要捕获的网络请求的URL的一部分。
如果你无法捕获response.json()
,可能有以下几种原因:
waitForResponse
方法中使用的URL与实际的网络请求的URL匹配。response.json()
方法只能用于解析JSON格式的响应。如果响应不是JSON格式,这个方法会抛出一个错误。waitForResponse
方法会等待网络请求完成,但如果网络请求需要很长时间,你可能需要增加超时时间。