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