</>

Technology

Scenario-Based

Difficulty

Intermediate

Interview Question

Multiple browser windows open in Selenium. How do you handle them?

Answer

Handling Multiple Browser Windows in Selenium

When an action opens a new browser window or tab, WebDriver stays focused on the original window. You must explicitly switch to the new one.

Get All Window Handles

Java
// Store the original window handle
String mainWindow = driver.getWindowHandle();

// Click something that opens a new window
driver.findElement(By.id("openNewWindow")).click();

// Get all window handles
Set<String> allWindows = driver.getWindowHandles();

// Switch to the new window
for (String window : allWindows) {
    if (!window.equals(mainWindow)) {
        driver.switchTo().window(window);
        break;
    }
}

// Now work in the new window
System.out.println("New window title: " + driver.getTitle());
driver.findElement(By.id("someElement")).click();

// Close new window and switch back to main
driver.close();
driver.switchTo().window(mainWindow);

Wait for New Window to Open

Java
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.numberOfWindowsToBe(2));

Set<String> handles = driver.getWindowHandles();

Reusable Helper Method

Java
public void switchToNewWindow(String mainWindowHandle) {
    Set<String> allHandles = driver.getWindowHandles();
    for (String handle : allHandles) {
        if (!handle.equals(mainWindowHandle)) {
            driver.switchTo().window(handle);
            return;
        }
    }
}

public void switchToWindowByTitle(String title) {
    for (String handle : driver.getWindowHandles()) {
        driver.switchTo().window(handle);
        if (driver.getTitle().equals(title)) return;
    }
}

Key Methods

MethodPurpose
getWindowHandle()Current window ID
getWindowHandles()All open window IDs (Set)
switchTo().window(handle)Switch focus to a window
driver.close()Close current window
driver.quit()Close all windows + quit driver

Note: getWindowHandles() returns a Set — order is not guaranteed in older browsers. Use title-based switching when order matters.

Follow AutomateQA

Related Topics