Java 如何使用Selenium for Firefox和Chrome禁用推送通知?
我想在通过Selenium Webdriver启动Firefox浏览器时禁用通知。Java 如何使用Selenium for Firefox和Chrome禁用推送通知?,java,selenium,selenium-webdriver,selenium-chromedriver,geckodriver,Java,Selenium,Selenium Webdriver,Selenium Chromedriver,Geckodriver,我想在通过Selenium Webdriver启动Firefox浏览器时禁用通知。 我发现了,但它已被弃用,在Firefox上对我不起作用(尽管它在Chrome上工作得很好) 我正在对pom.xml使用此依赖项: org.seleniumhq.selenium 硒爪哇 3.11.0 如果您的用例是禁用通知,则以下是选项: 要在Firefox浏览器客户端中禁用,请借助FirefoxProfile并传递键dom.webnotifications.enabled和dom.push.enabled,
我发现了,但它已被弃用,在Firefox上对我不起作用(尽管它在Chrome上工作得很好) 我正在对pom.xml使用此依赖项:
org.seleniumhq.selenium
硒爪哇
3.11.0
如果您的用例是禁用通知,则以下是选项:
- 要在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/");
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/");
FirefoxProfile
,该系统是根据
- 要在Chrome浏览器客户端中禁用通知,请借助setExperimentalOption()传递包含配置文件的哈希映射。默认内容设置值。值为2的通知:
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/");
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/");
System.setProperty(“webdriver.chrome.driver”,“C:\\path\\to\\chromedriver.exe”); Map prefs=新的HashMap(); prefs.put(“profile.default\u content\u setting\u values.notifications”,2); prefs.put(“凭证启用服务”,false); prefs.put(“profile.password\u manager\u enabled”,false); ChromeOptions选项=新的ChromeOptions(); 选项。设置实验选项(“prefs”,prefs); 选项。添加参数(“开始最大化”); options.addArguments(“禁用信息栏”); options.addArguments(“--disable extensions”); options.addArguments(“--disable notification”); WebDriver=新的ChromeDriver(选项); 驱动程序。获取(“https://www.ndtv.com/");
FirefoxProfile testprofile=profile.getProfile(“默认”)代码>这是通用解决方案吗?我的队友可以在其他主机/操作系统上使用它?@vixsimplex我在评论中添加了关于您问题的参考。但是,根据最佳实践,避免使用默认FirefoxProfile,因为它可能包含加载项、书签等。因此,在加载默认配置文件时,您可能会遇到超时错误。@DebanjanB我已将此解决方案用于chrome,但通知仍然是“xxxx希望显示通知”。你能看一下吗?