介紹
處理E2E的時候還有一個比較麻煩的 Dialog ,這個部分Puppeteer提供了一個 監聽是件來處理page有無任何Dialog事件
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
const page = await browser.newPage();
page.on('dialog', async dialog => {
console.log(dialog.message());
await dialog.dismiss();
await browser.close();
});
page.evaluate(() => alert('1'));
});
在上方程式碼可以看到在 page.on裡面監聽了 dialog的事件
當跳出來的時候可以操作以下動作
dialog.accept([promptText]) 接受
dialog.defaultValue() 一般有prompt的時候會印出prompt如果沒有就是空字串
dialog.dismiss() 取消
dialog.message() 可以抓到message再去判斷
dialog.type() 有四個形態 alert, beforeunload, confirm or prompt.