如何使用 Selenium 默认启用地理位置? [复制]

Posted

技术标签:

【中文标题】如何使用 Selenium 默认启用地理位置? [复制]【英文标题】:How to enable geo location by default using Selenium? [duplicate] 【发布时间】:2020-12-13 10:31:20 【问题描述】:

我正在编写测试用例以使用 Selenium webdriver 验证地图。当我尝试使用 url 打开地图时,会弹出位置警报。

我想在加载地图时默认允许地图访问当前位置而没有位置警报。

我曾尝试在 ChromeOptions 中使用配置文件,但它不能满足我的要求。

Map<String, Object> prefs = new HashMap<String, Object>();
Map<String, Object> profile = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.geolocation", 1); // 1:allow 2:block
options.setExperimentalOption("prefs", prefs);
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
webDriver = new ChromeDriver(capabilities);

任何帮助将不胜感激。

【问题讨论】:

当然不是,我不想填充弹窗,网站需要使用当前的地理位置。 【参考方案1】:

使用:

 googlegeolocationaccess.enabled

请尝试:

Map<String, Object> prefs = new HashMap<String, Object>();
Map<String, Object> profile = new HashMap<String, Object>();
prefs.put("googlegeolocationaccess.enabled", true);
prefs.put("profile.default_content_setting_values.geolocation", 1); // 1:allow 2:block
prefs.put("profile.default_content_setting_values.notifications", 1);
prefs.put("profile.managed_default_content_settings", 1);
options.setExperimentalOption("prefs", prefs);
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
webDriver = new ChromeDriver(capabilities);

【讨论】:

感谢您的解决方案,但似乎无法在隐身模式下工作。 它是否在正常模式下工作,点火模式可能不允许它,因为这是使用它的原因之一 是的,它在正常模式下工作 @light_ray 你能试试更新的答案吗,请投票并接受它帮助的问题

以上是关于如何使用 Selenium 默认启用地理位置? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 selenium 中使用无头 Chrome 启用 JavaScript

selenium webdriver如何启用Firefox插件?

怎样在火狐中启用selenium

使用Chrome驱动程序通过python和selenium在指定位置下载文件

Selenium2.0之WebDriver的启用IE10(IEDriverServer)

如何通过 chromedriver selenium 禁用定位服务?