我想通过Selenium Webdriver启动Firefox浏览器时禁用通知。我找到了这个答案,但是它已被弃用,在Firefox上对我不起作用(尽管它在Chrome上可以完美运行)。
我将这种依赖关系用于我的 pom.xml :
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.11.0</version> </dependency>
如果您的用 例 是禁用 通知,则可以使用 以下选项:
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/”);
注意 :此方法使用存储在我的本地系统中的现有FirefoxProfile名称为 debanjan 的现有文件,该文件是 根据在Windows 上 创建新的Firefox配置 文件中的文档 创建的
FirefoxProfile
System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
Map prefs = new HashMap(); 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/”);