我正在使用Puppeteer和Node编写测试,该测试要求我登录后从响应中获取访问令牌。
当前代码:
//Click Login Button
const loginButton = await page.$(".click-button.dark.ng-star-inserted");
response = await loginButton.click();
const object = page.on('response', async response =>{
if(response.url().includes("token")){
// returns the "access_token" i need
console.log(await response.json());
}
});
但是当我这样做时:
const object = page.on('response', async response =>{
if(response.url().includes("token")){
try {
return JSON.parse(await response.json());
} catch (error) {
}
}
});
console.log(object);
我只有诺言。经过大量研究,这是我所知道的。如何从promise中返回实际的json并在以后的代码中利用?
答案 0 :(得分:0)
您需要等待事件监听器返回诺言。因此代码将是
const object = await page.on('response', async response =>{
if(response.url().includes("token")){
try {
return JSON.parse(await response.json());
} catch (error) {
}
}
});