Handle popup windows in selenium

Handle popup windows in selenium

Spread the love

How to handle popup windows in selenium

In selenium, we have getWindowHandles() method to Handle popup windows in selenium. getWindowHandles() method returns all opened windows ID and store in Set data structure in string data types. To handle multiple windows, we have to switch to a secondary window from the home page.

Selenium basics

After opening any website, we have to get the main window handle by using the getWindowHandles() method. The window handle returns an alphanumeric ID. After getting windows ID we have to compare all the windows handles with the main window.

Handle popup windows in selenium
Windows Id

Setting up webdriver:

System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();

To get window handle:

String popUps = driver.getWindowHandle();

System.out.println(popUps);

Fetching all windows handle size:

Set<String> allWindows = driver.getWindowHandles();
System.out.println(allWindows.size());

Iterating window handles:

java.util.Iterator<String> iterator = allWindows.iterator();

Comparing main window to switch to another window:

String getCurrentWindowsID;
        //runs until all the active windows found
        while(iterator.hasNext()) {
            getCurrentWindowsID = iterator.next().toString();
            System.out.println(getCurrentWindowsID);
            //Comparing main window
            if(!popUps.equals(getCurrentWindowsID)) {
                //switching to new popup window
                driver.switchTo().window(getCurrentWindowsID);
                //sending values into the form field of popup window
                driver.findElement(By.id("Initial")).sendKeys("SA");
                driver.findElement(By.id("FirstName")).sendKeys("Santosh");
                driver.findElement(By.id("LastName")).sendKeys("Adhikari");
                Thread.sleep(5000);
                //closing driver
                driver.close();
            }

 getWindowHandles(): This method returns window handle ID of current window.

Example code for handling multiple windows in selenium

Note: we are going to use Java programming language

import java.util.Set;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class PopUp {
    public static void main(String[] args) throws Exception {
        System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://demosite.executeautomation.com/Login.html");
        driver.manage().window().maximize();

        
        driver.findElement(By.xpath("//*[@id=\"userName\"]/p[3]/input")).click();
        
        //to get main window handle
         String popUps = driver.getWindowHandle(); System.out.println(popUps);

        //click on login button
        driver.findElement(By.xpath("//*[@id=\"details\"]/div[1]/p/a")).click();
        // getting total windows size
        Set<String> allWindows = driver.getWindowHandles();
        System.out.println(allWindows.size());
        //Iterating windows
        java.util.Iterator<String> iterator = allWindows.iterator();
        String getCurrentWindowsID;
        //runs until all the active windows found
        while(iterator.hasNext()) {
            getCurrentWindowsID = iterator.next().toString();
            System.out.println(getCurrentWindowsID);
            //Comparing main window
            if(!popUps.equals(getCurrentWindowsID)) {
                //switching to new popup window
                driver.switchTo().window(getCurrentWindowsID);
                //sending values into the form field of popup window
                driver.findElement(By.id("Initial")).sendKeys("SA");
                driver.findElement(By.id("FirstName")).sendKeys("Santosh");
                driver.findElement(By.id("LastName")).sendKeys("Adhikari");
                Thread.sleep(5000);
                //closing driver
                driver.close();
            }
            
        }

    }

}

Selenium official documentation


Spread the love

Santosh Adhikari

Hello, it's me Santosh Adhikari, from Kathmandu, Nepal. I'm a student of Science and Technology. I love new challenges and want to explore more on Software Quality Assurance. I want to be a professional SQA. I'm also interested in Blogging, SEO activities.
0 0 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments