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

How to add allow site on location of chrome content setting with selenium

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

因为我想去掉测试中的弹出窗口

有人知道吗?

要禁用 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 post.

中已经解释了整个答案

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

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

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

下面的代码片段可以让我禁用该弹出窗口。而不是 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);

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