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

Posted

技术标签:

【中文标题】有没有办法绕过量角器测试中的 Chrome 地理定位对话框?【英文标题】:Is there a way to bypass Chrome geolocation dialog in Protractor tests? 【发布时间】:2019-09-07 22:17:35 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

问题的解决方法是在你的 protractor.config.js 中将"prefs": 'profile.default_content_setting_values.geolocation': 2 传递给capabilities 对象

下面是另一个几乎做同样事情的选项。

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

【讨论】:

以上是关于有没有办法绕过量角器测试中的 Chrome 地理定位对话框?的主要内容,如果未能解决你的问题,请参考以下文章

量角器中的“defaultTimeoutInterval”何时重置?

测试运行结束时未指定的量角器错误

protractor - 启动 chrome 以禁用 cors 的网络安全

除了尝试捕获或承诺拒绝之外,有没有办法处理量角器的预期条件?

如何使量角器与木偶和chrome 78一起使用?

开发机上绕过Chrome同源策略的办法