Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to click Allow on Show Notifications popup using Selenium Webdriver

I'm trying to login to Facebook. After a successful login, I get a browser popup:

Show Notifications

How with the webdriver can I click Allow and proceed forward?

like image 694
Sidhant Avatar asked Jul 31 '16 12:07

Sidhant


People also ask

Can Selenium handle window pop-ups?

Yes, it is possible to handle Windows based pop-ups in Selenium webdriver. Sometimes on clicking a link or a button, another window gets opened. It can be a pop up with information or an advertisement. The methods getWindowHandles and getWindowHandle are used to handle child windows.


1 Answers

Please Follow below steps :

A) USING JAVA :

For Old Chrome Version (<50):

//Create a instance of ChromeOptions class ChromeOptions options = new ChromeOptions();  //Add chrome switch to disable notification - "**--disable-notifications**" options.addArguments("--disable-notifications");  //Set path for driver exe  System.setProperty("webdriver.chrome.driver","path/to/driver/exe");  //Pass ChromeOptions instance to ChromeDriver Constructor WebDriver driver =new ChromeDriver(options); 

For New Chrome Version (>50):

//Create a map to store  preferences  Map<String, Object> prefs = new HashMap<String, Object>();  //add key and value to map as follow to switch off browser notification //Pass the argument 1 to allow and 2 to block prefs.put("profile.default_content_setting_values.notifications", 2);  //Create an instance of ChromeOptions  ChromeOptions options = new ChromeOptions();  // set ExperimentalOption - prefs  options.setExperimentalOption("prefs", prefs);  //Now Pass ChromeOptions instance to ChromeDriver Constructor to initialize chrome driver which will switch off this browser notification on the chrome browser WebDriver driver = new ChromeDriver(options); 

For Firefox :

    WebDriver driver ;     FirefoxProfile profile = new FirefoxProfile();     profile.setPreference("permissions.default.desktop-notification", 1);     DesiredCapabilities capabilities=DesiredCapabilities.firefox();     capabilities.setCapability(FirefoxDriver.PROFILE, profile);     driver = new FirefoxDriver(capabilities);     driver.get("http://google.com"); 

B) USING PYTHON :

from selenium import webdriver from selenium.webdriver.chrome.options import Options  option = Options()  option.add_argument("--disable-infobars") option.add_argument("start-maximized") option.add_argument("--disable-extensions")  # Pass the argument 1 to allow and 2 to block option.add_experimental_option("prefs", {      "profile.default_content_setting_values.notifications": 1  })  driver = webdriver.Chrome(chrome_options=option, executable_path='path-of-  driver\chromedriver.exe') driver.get('https://www.facebook.com') 

C) USING C#:

ChromeOptions options = new ChromeOptions(); options.AddArguments("--disable-notifications"); // to disable notification IWebDriver driver = new ChromeDriver(options); 
like image 194
Pritam Maske Avatar answered Oct 12 '22 21:10

Pritam Maske