有没有办法绕过 Protractor 测试中的 Chrome 地理定位对话框?

Is there a way to bypass Chrome geolocation dialog in Protractor tests?

我在使用量角器自动化应用程序时遇到了这个问题。

打开主页后,我会看到带有 Block/Allow 按钮的地理定位对话框,如果不选择任何一个选项,它不会继续进行

事实证明,此对话框不是警报实例,这就是 browser.switchTo().alert().confirm() 不起作用的原因

'--disable-notifications' 参数传递给 Chrome 也没有解决问题

在线研究没有给出任何积极的结果。如何解决?

问题的解决方案是将 "prefs": {'profile.default_content_setting_values.geolocation': 2} 传递给 capabilities 对象 protractor.config.js

下面是另一个选项,功能几乎相同。

因此 chrome 可以使用一个参数 --user-data-dir=/tmp/chrome 来指定打开 chrome 的配置文件。如果指定目录中不存在配置文件,则会创建默认目录。 然后,如果你打开 /tmp/chrome/Default/Preferences,你会看到一个带有偏好的对象。您需要将 default_content_setting_values.geolocation 设置为 2(不是 1 或 0)以使其不提示该对话框