在 chrome selenium 驱动程序中停用浏览器通知
deactivate browser notifications in chrome driver for selenium
我有一个简单的用户登录,如果登录失败,它会显示通知 (https://developer.mozilla.org/en-US/docs/Web/API/notification) 或警报(如果通知被禁用)。
此外,我想在 NodeJS 中使用 selenium 测试此登录,但没有通知(仅警报)。因此,我尝试使用 chrome 实验性选项停用 chrome 中的通知功能。尽管如此,它确实显示了通知。可能 atm 不支持此功能。
我在 NodeJS 中尝试了以下方法:
var options = new chrome.Options();
options.addArguments("profile.default_content_setting_values.notifications", "2");
var driver = new webdriver.Builder().withCapabilities(options.toCapabilities()).build();
以下代码适用于 Java。
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.notifications", 2);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(options);
我必须设置用户首选项。
var options = new chrome.Options();
options.setUserPreferences({'profile.default_content_setting_values.notifications': 2});
var driver = new webdriver.Builder().withCapabilities(options.toCapabilities()).build();
希望下面的代码有效。
这仅适用于 Chrome
ChromeOptions opt = new ChromeOptions();
opt.AddArguments("--disable-notifications");
opt.AddArguments("--disable-popup-blocking");
driver = new ChromeDriver(@"C:\Users\ChromeDriverPath", opt);
我从很多客户那里看到这个问题,尤其是当用户使用 WebdriverIO nodeJS 时 bindings.The 下面的 JS 代码片段和 Java 启用位置设置:
对于 JS:
var options = new chrome.Options();
options.setUserPreferences({'profile': {'managed_default_content_settings': {'geolocation': 1}}});
var driver = new webdriver.Builder().forBrowser('chrome').withCapabilities(options.toCapabilities()).build();
对于Java:
// Declare variables
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
Map<String, Object> profile = new HashMap<String, Object>();
Map<String, Object> contentSettings = new HashMap<String, Object>();
// Specify the ChromeOption we need to set
contentSettings.put(“geolocation”, 1);
profile.put(“managed_default_content_settings”, contentSettings);
prefs.put(“profile”, profile);
options.setExperimentalOption(“prefs”, prefs);
// Declare the capability for ChromeOptions
caps.setCapability(ChromeOptions.CAPABILITY, options);
目前没有toCapabilities
方法。只需传递选项
const options = new chrome.Options();
options.setUserPreferences({'profile': {'managed_default_content_settings': {'geolocation': 2 }}});
this.driver = new Builder().forBrowser('chrome').withCapabilities(options).build();
我有一个简单的用户登录,如果登录失败,它会显示通知 (https://developer.mozilla.org/en-US/docs/Web/API/notification) 或警报(如果通知被禁用)。
此外,我想在 NodeJS 中使用 selenium 测试此登录,但没有通知(仅警报)。因此,我尝试使用 chrome 实验性选项停用 chrome 中的通知功能。尽管如此,它确实显示了通知。可能 atm 不支持此功能。
我在 NodeJS 中尝试了以下方法:
var options = new chrome.Options();
options.addArguments("profile.default_content_setting_values.notifications", "2");
var driver = new webdriver.Builder().withCapabilities(options.toCapabilities()).build();
以下代码适用于 Java。
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.notifications", 2);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(options);
我必须设置用户首选项。
var options = new chrome.Options();
options.setUserPreferences({'profile.default_content_setting_values.notifications': 2});
var driver = new webdriver.Builder().withCapabilities(options.toCapabilities()).build();
希望下面的代码有效。 这仅适用于 Chrome
ChromeOptions opt = new ChromeOptions();
opt.AddArguments("--disable-notifications");
opt.AddArguments("--disable-popup-blocking");
driver = new ChromeDriver(@"C:\Users\ChromeDriverPath", opt);
我从很多客户那里看到这个问题,尤其是当用户使用 WebdriverIO nodeJS 时 bindings.The 下面的 JS 代码片段和 Java 启用位置设置:
对于 JS:
var options = new chrome.Options();
options.setUserPreferences({'profile': {'managed_default_content_settings': {'geolocation': 1}}});
var driver = new webdriver.Builder().forBrowser('chrome').withCapabilities(options.toCapabilities()).build();
对于Java:
// Declare variables
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
Map<String, Object> profile = new HashMap<String, Object>();
Map<String, Object> contentSettings = new HashMap<String, Object>();
// Specify the ChromeOption we need to set
contentSettings.put(“geolocation”, 1);
profile.put(“managed_default_content_settings”, contentSettings);
prefs.put(“profile”, profile);
options.setExperimentalOption(“prefs”, prefs);
// Declare the capability for ChromeOptions
caps.setCapability(ChromeOptions.CAPABILITY, options);
目前没有toCapabilities
方法。只需传递选项
const options = new chrome.Options();
options.setUserPreferences({'profile': {'managed_default_content_settings': {'geolocation': 2 }}});
this.driver = new Builder().forBrowser('chrome').withCapabilities(options).build();