Selenium Java: Handling Alerts and Popups

When working with web applications, handling alerts and popups is a common requirement in test automation. These elements often interrupt the flow of interaction and can affect automated scripts if not handled properly. With Selenium WebDriver in Java, you can effectively manage different types of alerts and popups using built-in methods.

In this blog, we’ll explore how to handle JavaScript alerts, confirmation boxes, and browser popups using Selenium Java, with practical examples and best practices.


Types of Alerts and Popups

  • Before diving into the code, it’s important to understand the types of alerts you may encounter:
  • JavaScript Alerts – Simple alerts with an "OK" button.
  • Confirmation Alerts – Alerts with "OK" and "Cancel" buttons.
  • Prompt Alerts – Alerts that take input from the user.
  • Browser Popups/Authentication Windows – Popups triggered by the browser (not part of the DOM).
  • HTML Popups/Modals – Custom dialogs built using HTML, CSS, and JavaScript.


Handling JavaScript Alerts in Selenium

Selenium provides the Alert interface to interact with JavaScript-based browser alerts.


1. Accepting an Alert

java


import org.openqa.selenium.Alert;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;


WebDriver driver = new ChromeDriver();

driver.get("https://example.com/alert");


Alert alert = driver.switchTo().alert(); // Switch to the alert

System.out.println("Alert message: " + alert.getText());

alert.accept(); // Click OK

2. Dismissing an Alert

java


Alert alert = driver.switchTo().alert();

alert.dismiss(); // Click Cancel

3. Sending Input to a Prompt Alert

java


Alert alert = driver.switchTo().alert();

alert.sendKeys("Test input");

alert.accept();

Handling Authentication Popups

Browser authentication popups usually appear for protected pages and are outside the control of Selenium. One common workaround is to pass credentials in the URL:


java


driver.get("https://username:password@example.com/protected");

Note: This method may not work in all modern browsers due to security policies.


Handling HTML Popups and Modals

Unlike JavaScript alerts, HTML popups are part of the DOM and can be handled like any other web element using standard Selenium commands:


java


driver.findElement(By.id("modalTrigger")).click(); // Trigger popup

WebElement popup = driver.findElement(By.className("modal-content"));

popup.findElement(By.id("closeButton")).click(); // Close modal

Waits and Synchronization

Popups can take time to appear. Using explicit waits ensures your script waits for the alert to be present:


java


WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));

wait.until(ExpectedConditions.alertIsPresent());


Alert alert = driver.switchTo().alert();

alert.accept();

This improves script reliability, especially in dynamic applications.


Best Practices

  • Always use ExpectedConditions.alertIsPresent() to avoid NoAlertPresentException.
  • Handle all types of alerts explicitly based on their behavior.
  • For HTML popups, treat them like regular DOM elements.
  • Avoid using hard-coded delays like Thread.sleep()—prefer WebDriverWait.


Conclusion

Handling alerts and popups is a crucial part of test automation with Selenium Java. Whether it’s a simple alert box or a complex modal dialog, Selenium provides the tools you need to manage these interruptions gracefully. Mastering these interactions ensures your tests run smoothly across different scenarios, enhancing the stability and accuracy of your automation suite.

With the techniques outlined above, you can confidently manage all alert and popup situations in your Selenium test scripts. 

Learn Selenium with Java Training

Read More: Working with Radio Buttons and Checkboxes in Selenium Java

Visit Our IHUB Talent Institute Hyderabad
Get Direction 

Comments

Popular posts from this blog

How to Use Tosca's Test Configuration Parameters

Using Hibernate ORM for Fullstack Java Data Management

Creating a Test Execution Report with Charts in Playwright