剧作家无法捕获 response.json()
Unable to capture response.json() in playwright
我正在尝试使用剧作家来捕捉 json 响应。我一直在等待 Promise。但是在 headless:false 模式下,我可以看到正在接收数据并在浏览器上填充数据。我刚开始玩Playwright,对《Promise》也不是很熟悉。
我试过的如下:
(async () => {
let browser = await firefox.launch({headless: true, userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0'});
let page = await browser.newPage();
page.waitForResponse(async(response) => {
if (response.url().includes('/abcd') && response.status() == 200) {
let resp = await response.json();
console.log(resp);
}
});
await page.goto('https://myurl.com', {waitUntil: 'networkidle', timeout: 30000});
await page.waitForTimeout(20000);
await browser.close();
})
我做错了什么?我试过增加超时。没有帮助。
waitForResponse
不会处理您的异步函数。你可以这样做:
(async () => {
let browser = await firefox.launch({headless: true, userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0'});
let page = await browser.newPage();
const promise page.waitForResponse(/abcd/); // This is a regex to match the url
await page.goto('https://myurl.com', {waitUntil: 'networkidle', timeout: 30000});
var response = await promise; // here we wait for the promise to be fullfiled.
let resp = await response.json();
console.log(resp);
await browser.close();
})
我正在尝试使用剧作家来捕捉 json 响应。我一直在等待 Promise。但是在 headless:false 模式下,我可以看到正在接收数据并在浏览器上填充数据。我刚开始玩Playwright,对《Promise》也不是很熟悉。
我试过的如下:
(async () => {
let browser = await firefox.launch({headless: true, userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0'});
let page = await browser.newPage();
page.waitForResponse(async(response) => {
if (response.url().includes('/abcd') && response.status() == 200) {
let resp = await response.json();
console.log(resp);
}
});
await page.goto('https://myurl.com', {waitUntil: 'networkidle', timeout: 30000});
await page.waitForTimeout(20000);
await browser.close();
})
我做错了什么?我试过增加超时。没有帮助。
waitForResponse
不会处理您的异步函数。你可以这样做:
(async () => {
let browser = await firefox.launch({headless: true, userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0'});
let page = await browser.newPage();
const promise page.waitForResponse(/abcd/); // This is a regex to match the url
await page.goto('https://myurl.com', {waitUntil: 'networkidle', timeout: 30000});
var response = await promise; // here we wait for the promise to be fullfiled.
let resp = await response.json();
console.log(resp);
await browser.close();
})