javascript - 我可以忽略“离开站点”吗?使用 Puppeteer 无头浏览时出现对话框?
问题描述
我正在使用 Puppeteer 在网站上测试一些表格。当我运行测试时,我注意到在尝试在页面之间导航时执行卡住了。我自己手动进行了试运行,并意识到页面正在发出一个对话框,因为某些表单输入已经更改而没有提交表单。
这条消息说:
Leave site?
Changes you made may not be saved.
有一些明显的解决方法,比如我可以确保每次在导航到下一页之前提交表单。但是,理想情况下,我希望能够完全忽略此对话框,因为我只是在运行测试并且我不在乎不会保存更改。
有没有办法禁用这些消息?如果没有,有没有办法检查是否有一个对话框打开然后关闭它?
解决方案
尝试通过 puppeteer 设置 window.onbeforeunload = null
await page.evaluate(() => {
window.onbeforeunload = null;
});
推荐阅读
- devops - 使用 codeship 使用 dockercfg 文件从 Github Conatiner Registry 拉取 docker 镜像
- c++ - 如何确定 operator new 在抛出异常时尝试分配的确切地址?
- c++ - 使用管道在同一进程上执行多个shell命令时读取死锁
- python - 如何比较两个字典并从值中替换字符串
- python - 如何读取所有文件并为一个 def 执行相同的工作?
- excel - 在电子表格受密码保护时允许组展开/折叠。即使在关闭文件之后
- html-table - NVDA 在链接存在时说表列的名称是额外的时间
- android - 如何使用自定义字符串在设备的主屏幕搜索中找到我的 Android 应用程序?
- mongodb - 错误:在服务“mongo”中使用了命名卷“mongodb:/data/db:rw”,但在卷部分未找到声明
- echarts - 如何使用编码在 eCharts 中显示多行?