如何在Puppeteer和NodeJS中把提示框的消息分配给一个变量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Puppeteer和NodeJS中把提示框的消息分配给一个变量?相关的知识,希望对你有一定的参考价值。
let a = "";
(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto('https://www.google.com/')
page.on('dialog', async dialog => {
**a = dialog.message();**
await dialog.dismiss()
})
await page.evaluate(() => alert('This message is inside an alert box'))
**console.log(a);**
await browser.close()
})()
我想把对话框的消息分配给一个变量,并在page.on函数之外访问它。
答案
你可以使用一个承诺,它将在事件中被解析,然后等待这个承诺。
const browser = await puppeteer.launch({
headless: false,
defaultViewport: null
});
let resolve;
var dialogPromise = new Promise(x => resolve = x);
const Page = await browser.newPage();
await Page.goto('https://www.google.com/');
page.on('dialog', async dialog => {
resolve(dialog.message());
await dialog.dismiss()
})
var output = await dialogPromise;
console.log(output);
以上是关于如何在Puppeteer和NodeJS中把提示框的消息分配给一个变量?的主要内容,如果未能解决你的问题,请参考以下文章
Puppeteer + Nodejs 通用全屏网页截图方案常用参数实现
如何使用 puppeteer 和 Node js 为 pdf 页面生成屏幕截图