</>

Technology

Selenium

Difficulty

Intermediate

Interview Question

How to handle multiple windows or tabs in Selenium WebDriver?

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