如何使用selenium在chrome内容设置的位置添加允许站点

时间:2017-07-20 03:35:43

标签: selenium selenium-chromedriver selendroid

我想添加网站" a.com"在使用硒的移动铬上。 选项 - [高级内容设置 - 位置 - 在访问 - 允许站点之前询问]

因为我想在我的测试中摆脱弹出窗口

enter image description here

有人知道吗?

3 个答案:

答案 0 :(得分:1)

要禁用Chrome询问位置,您需要使用ChromeOptions并从配置文件设置中停用geolocation

 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);

请注意,this SO帖子已经解释了整个答案。

编辑:如果要保持启用该选项,您只需要更改此行

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

jsonObject.put("profile.default_content_settings.geolocation", 1);

答案 1 :(得分:1)

使用chrome devtools协议可以做到这一点。Browser.grantPermission允许在访问目标网站之前配置地理位置许可。您可以查看我的另一个答案以获取更多详细信息Setting sensors (location) in headless Chrome

答案 2 :(得分:0)

下面的代码段对我有用,以禁用该弹出窗口。

代替profile.default_content_settings.geolocation

我使用了profile.default_content_setting_values.notifications

ChromeOptions options = new ChromeOptions();

JSONObject jsonObject = new JSONObject();
jsonObject.put("profile.default_content_setting_values.notifications", 1);

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

DesiredCapabilities caps = new DesiredCapabilities();
ChromeOptions options = new ChromeOptions();

Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_settings.popups", 0);
prefs.put("profile.default_content_setting_values.notifications", 1);

options.setExperimentalOption("prefs", prefs);
caps.setCapability(ChromeOptions.CAPABILITY, options);