Как назначить сообщение окна оповещения переменной в Puppeteer и NodeJS? - PullRequest
0 голосов
/ 22 апреля 2020
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.

1 Ответ

0 голосов
/ 22 апреля 2020

Вы можете использовать обещание, которое будет разрешено на событии, а затем дождаться этого обещания.

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...