禁用Chrome通知(Selenium)

我只是想在Selenium Java应用程序打开的Chrome中禁用Chrome通知。 (使用java代码)

这样的通知:

在此处输入图像描述

问题是在浏览器窗口关闭后手动设置的设置会丢失。

这个问题在“chromedriver-users”google论坛中得到了回答。 这是工作的答案:

Map prefs = new HashMap(); prefs.put("profile.default_content_setting_values.notifications", 2); ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("prefs", prefs); WebDriver driver = new ChromeDriver(options); 

您可以使用:

 chrome_options = Options() chrome_options.add_argument("--disable-notifications") browser = webdriver.Chrome(chrome_options=chrome_options) 
  ChromeOptions ops = new ChromeOptions(); ops.addArguments("--disable-notifications"); System.setProperty("webdriver.chrome.driver", "./lib/chromedriver"); driver = new ChromeDriver(ops); 

有人需要为Capybara或Watir提供此function,您可以将--disable-notifications作为参数传递,例如"--start-fullscreen", "--disable-infobars" 。 以下工作:

 Capybara.register_driver :chrome do |app| args = ["--disable-notifications"] Capybara::Selenium::Driver.new(app, {:browser => :chrome, :args => args}) end 
 public class MultipleWindowHandle { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "E:\\NEWSEL\\chromedriver.exe"); // Create object of HashMap Class as shown below. Map prefs = new HashMap(); // Set the notification setting it will override the default setting. prefs.put("profile.default_content_setting_values.notifications", 2); // Create object of ChromeOption class. ChromeOptions Roptions = new ChromeOptions(); // Set the experimental option. Roptions.setExperimentalOption("prefs", prefs); // Open chrome browser. ChromeDriver driver = new ChromeDriver(Roptions); driver.get("https://my.monsterindia.com/login.html"); Set id = driver.getWindowHandles(); Object[] data = id.toArray(); driver.switchTo().window((String)data[1]); driver.close(); } }