如何在操纵up中检测警报

时间:2019-04-14 16:32:30

标签: node.js puppeteer

如何检测导航后页面是否显示带有某些消息的警报。

p操纵者可以检测或识别该页面是否显示了警报框。

我尝试了

page.on('popup', ()=> {
   console.log('popup detected');
});

page.on('dialog', ()=> {
   console.log('popup detected');
});

2 个答案:

答案 0 :(得分:1)

如评论中所述:如果您在调用page.goto之后注册事件处理程序(您的代码),则在侦听事件之前已经触发了该事件。

因此,请确保在您的代码后调用page.goto

答案 1 :(得分:0)

这是我的两分钱:

 private async gotoPage(path):Promise<Response|Result> {
        return new Promise(async(resolve, reject) => {
            await Promise.all([
                this.page.on('dialog', async (dialog) => {
                    await dialog.dismiss().catch(() => {
                        console.log(dialog.message());
                        return new Result(TestStatus.FAIL, dialog.message());
                    });
                }),
                this.page.goto(`${this.baseURL}${path}`),
                this.page.waitForNavigation({ waitUntil: 'load' })]).then(
                async () => {
                    resolve(new Result(TestStatus.PASS, `Loading to path success : ${path}`));
                },
                async () => {
                    reject(new Result(TestStatus.FAIL, `Could not GotoPage : ${path}`));
                });
        });
    }