can*_*asp 3 java selenium selenium-chromedriver selenium-webdriver geckodriver
我想在通过 Selenium Webdriver 启动 Firefox 浏览器时禁用通知。
我找到了这个答案,但它已被弃用,并且在 Firefox 上不适用于我(但它在 Chrome 上完美运行)。
我将此依赖项用于我的pom.xml:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.11.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
如果您的用例是禁用通知,则可以选择以下选项:
要在Firefox浏览器客户端中禁用推送通知,请借助 FirefoxProfile并传递键dom.webnotifications.enabled和dom.push.enabled以及所需的值false :
System.setProperty("webdriver.gecko.driver", "C:\\path\\to\\geckodriver.exe");
ProfilesIni profile = new ProfilesIni();
FirefoxProfile testprofile = profile.getProfile("debanjan");
testprofile.setPreference("dom.webnotifications.enabled", false);
testprofile.setPreference("dom.push.enabled", false);
DesiredCapabilities dc = DesiredCapabilities.firefox();
dc.setCapability(FirefoxDriver.PROFILE, testprofile);
FirefoxOptions opt = new FirefoxOptions();
opt.merge(dc);
WebDriver driver = new FirefoxDriver(opt);
driver.get("https://www.ndtv.com/");
Run Code Online (Sandbox Code Playgroud)注意:此方法使用存储在我的本地系统中的FirefoxProfile名为debanjan的现有文件,该文件是按照在 Windows 上创建新的 Firefox 配置文件中的文档创建的
要在Chrome浏览器客户端中禁用通知,请借助setExperimentalOption()来传递包含profile.default_content_setting_values.notifications且值为2的HashMap:
System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.notifications", 2);
prefs.put("credentials_enable_service", false);
prefs.put("profile.password_manager_enabled", false);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
options.addArguments("--disable-extensions");
options.addArguments("--disable-notifications");
WebDriver driver = new ChromeDriver(options);
driver.get("https://www.ndtv.com/");
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
6337 次 |
| 最近记录: |