</>

Technology

Selenium

Difficulty

Intermediate

Interview Question

What are different types of pop-ups you have handled in Selenium projects?

Selenium handles JavaScript alerts, browser popups, and native OS popups using different techniques: Alert API, Browser Profiles, AutoIT, Sikuli, and Robot class.

Answer

Types of Pop-ups Handled in Selenium Projects

1. JavaScript Pop-ups (Alert, Confirm, Prompt): Native browser dialogs triggered by JavaScript. Handled via Selenium''s Alert API.

Java
// Simple alert
Alert alert = driver.switchTo().alert();
alert.accept();  // Click OK

// Confirm dialog
Alert confirm = driver.switchTo().alert();
System.out.println(confirm.getText());
confirm.dismiss();  // Click Cancel

// Prompt dialog
Alert prompt = driver.switchTo().alert();
prompt.sendKeys("My input");
prompt.accept();

2. Browser Authentication Pop-ups (HTTP Basic Auth): Browser-native authentication dialogs — not HTML elements.

Java
// Method 1: Embed in URL
driver.get("http://admin:password@the-internet.herokuapp.com/basic_auth");

// Method 2: Alert API
Alert alert = new WebDriverWait(driver, Duration.ofSeconds(10))
    .until(ExpectedConditions.alertIsPresent());
alert.authenticateUsing(new UserAndPassword("admin", "admin"));

3. Browser Pop-up Windows: New browser windows or tabs opened by the application.

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

for (String handle : handles) {
    if (!handle.equals(mainWindow)) {
        driver.switchTo().window(handle);
        // Interact with popup window
        driver.close();
    }
}
driver.switchTo().window(mainWindow);

4. Native OS Pop-ups (Windows dialogs): File download/upload dialogs, Windows Security dialogs — outside browser control.

  • AutoIT — Windows automation scripting tool
  • Sikuli — Image-based automation
  • Robot class — Java''s built-in keyboard/mouse simulation
Java
// Robot class for keyboard input on OS dialog
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);  // Press Enter
robot.keyRelease(KeyEvent.VK_ENTER);

5. Browser Profile-based Pop-up Suppression: Pre-configure browser to automatically handle certain pop-ups.

Java
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-notifications");  // Block notification pop-ups
options.addArguments("--disable-popup-blocking");

// For file download — suppress download dialog
HashMap<String, Object> prefs = new HashMap<>();
prefs.put("download.prompt_for_download", false);
prefs.put("download.default_directory", "C:\\Downloads");
options.setExperimentalOption("prefs", prefs);

Summary table:

Pop-up TypeMethod
JS Alert/Confirm/Promptdriver.switchTo().alert()
Browser window/tabdriver.switchTo().window(handle)
HTTP Auth dialogURL credentials / authenticateUsing()
File upload/downloadRobot class / AutoIT / Sikuli
Notification requestsChromeOptions --disable-notifications

Follow AutomateQA

Related Topics