</>

Technology

Selenium

Difficulty

Intermediate

Interview Question

How to handle multiple windows or tabs in Selenium WebDriver?

Use getWindowHandles() to get all window IDs and switchTo().window() to switch between browser windows or tabs.

Answer

Selenium handles multiple windows using window handles — unique string IDs for each open window/tab.

Get all window handles:

Java
String mainWindow = driver.getWindowHandle();
Set<String> allWindows = driver.getWindowHandles();

Switch to a new window:

Java
driver.findElement(By.linkText("Open New Window")).click();

String mainHandle = driver.getWindowHandle();
for (String handle : driver.getWindowHandles()) {
    if (!handle.equals(mainHandle)) {
        driver.switchTo().window(handle);
        break;
    }
}

System.out.println("New window title: " + driver.getTitle());
driver.switchTo().window(mainHandle);

Helper method:

Java
public void switchToNewWindow(WebDriver driver, String mainHandle) {
    for (String handle : driver.getWindowHandles()) {
        if (!handle.equals(mainHandle)) {
            driver.switchTo().window(handle);
            return;
        }
    }
}

Close new window and return:

Java
driver.close();
driver.switchTo().window(mainHandle);

Follow AutomateQA

Related Topics