如何使用 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
.
我想使用 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 .