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.
// 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.
// 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.
// 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
// 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.
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 Type | Method |
|---|---|
| JS Alert/Confirm/Prompt | driver.switchTo().alert() |
| Browser window/tab | driver.switchTo().window(handle) |
| HTTP Auth dialog | URL credentials / authenticateUsing() |
| File upload/download | Robot class / AutoIT / Sikuli |
| Notification requests | ChromeOptions --disable-notifications |
