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

6
我正在使用Selenium 2 - Webdriver,Chromedriver和Java。 我的一个测试需要关闭Chrome上的位置服务。
我注意到默认情况下,Chromedriver会打开位置服务。
我想知道是否有一种方法可以在Chromedriver上禁用位置服务?
先行致谢!

有人知道Chromedriver是否支持禁用位置服务吗? - user1488025
1个回答

5

是的,这是可能的。 使用ChromeOptions类,如下所示:

 ChromeOptions options = new ChromeOptions();

 JSONObject jsonObject = new JSONObject();
 jsonObject.put("profile.default_content_settings.geolocation", 2);

 options.setExperimentalOption("prefs", jsonObject);
 WebDriver driver = new ChromeDriver(options);

您可以将其视为对此处问题的答案: 这里

感谢您的回复。 - user1488025
如果Chrome选项以哈希映射形式存在,您会如何处理? Map<String, Object> chromeOptions = new HashMap<String, Object>(); - elrobe
1
@elrobe 我建议你尝试将Map<String,Object>中相关的条目转换为ChromeOptions。请注意,ChromeOptions.setExperimentalOption接收String和Object参数,这正是你在map中拥有的。只需将map中的值复制到setExperimentalOption参数中即可。 - Johnny
仅供参考:JSONObject是由这个库json-simple创建的。 - jithinkmatthew
SetExperimentalOption在ChromeOptions中已不可用,我认为AddAdditionalCapability()会起作用。 - LordDraagon
或者使用AddUserProfilePreference()方法,该方法可以直接添加偏好设置,而无需使用JsonObject。 - LordDraagon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接