首页 > 解决方案 > 我可以忽略“离开站点”吗?使用 Puppeteer 无头浏览时出现对话框?

问题描述

我正在使用 Puppeteer 在网站上测试一些表格。当我运行测试时,我注意到在尝试在页面之间导航时执行卡住了。我自己手动进行了试运行,并意识到页面正在发出一个对话框,因为某些表单输入已经更改而没有提交表单。

这条消息说:

Leave site?
Changes you made may not be saved.

有一些明显的解决方法,比如我可以确保每次在导航到下一页之前提交表单。但是,理想情况下,我希望能够完全忽略此对话框,因为我只是在运行测试并且我不在乎不会保存更改。

有没有办法禁用这些消息?如果没有,有没有办法检查是否有一个对话框打开然后关闭它?

标签: javascriptnode.jsgoogle-chromedialogpuppeteer

解决方案


尝试通过 puppeteer 设置 window.onbeforeunload = null

await page.evaluate(() => {
  window.onbeforeunload = null;
});

推荐阅读