• Selenium Video Tutorials

Selenium WebDriver - Alerts & Popups



Selenium Webdriver can be used to handle alerts and popups. An alert on a web page is designed to show a warning message, or information, or to get the user authorization to proceed for further actions.

Basic Methods to Handle Alerts & Popups in Selenium

There are multiple methods available in Selenium that can enable us to automate tests based on alerts and popups. For accessing the alerts, we have to first switch the driver context to the alert using the switchTo().alert() method. Let us discuss in details some of the methods of the Alert interface −

  • driver.switchTo().alert().accept() − This is used to accept an alert by clicking on the Ok button appearing on an alert.
  • driver.switchTo().alert().dismiss() − This is used to dismiss an alert by clicking on the Cancel button appearing on an alert.
  • driver.switchTo().alert().getText() − This is used to get the text appearing on an alert.
  • driver.switchTo().alert().sendKeys("value to be entered") − This is used to enter some text appearing on an input text appearing on an alert.

Please note that, while using the Alert interface, we would need to add the import statement import org.openqa.selenium.Alert in our tests.

Example 1 - Alerts

Let us discuss a normal alert on a web page. On clicking the Alert button on the page, an alert would be generated with the text - Hello world! as shown in the below image.

Selenium Alerts Popups 1

Code Implementation

package org.example;

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

public class Alrts {
   public static void main(String[] args) throws InterruptedException {
   
      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();
      
      // adding implicit wait of 12 secs
      driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);
      
      // Opening the webpage where we will get alert
      driver.get("https://www.tutorialspoint.com/selenium/practice/alerts.php");
      
      // identify button for clicking to get alert
      WebElement c = driver.findElement(By.xpath("//button[text()='Alert']"));
      c.click();
      
      // switch driver context to alert
      Alert alrt = driver.switchTo().alert();
      
      // dismiss alert
      alrt.dismiss();
      
      //again get the alert
      c.click();
      
      // Get alert text
      String s = alrt.getText();
      System.out.println("Alert text is: " + s);
      
      // accept alert
      alrt.accept();
      
      // quitting the browser
      driver.quit();
   }
}

Output

Alert text is: Hello world!

Process finished with exit code 0

In the above example, we captured the text on the alert and received the message in the console - Alert text is: Hello world!.

Finally, the message Process finished with exit code 0 was received, signifying successful execution of the code.

Example 2 - Confirmation Alerts

Let us discuss another alert on a web page as shown in the below image. On clicking the second Click Me button, we would get an alert with the text - Press a button! on the web page.

Selenium Alerts Popups 2

On clicking the OK button on the alert, we would get the text You pressed OK! on the web page.

Selenium Alerts Popups 3

And on clicking the Cancel button on the alert, we would get the text You pressed Cancel! on the page.

Selenium Alerts Popups 4

Code Implementation

package org.example;

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

public class AlertJS {
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 12 secs
      driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);

      // Opening the webpage where we will get alert
      driver.get("https://www.tutorialspoint.com/selenium/practice/alerts.php");

      // identify button for clicking to get alert
      WebElement c =driver.findElement
         (By.xpath("/html/body/main/div/div/div[2]/div[3]/button"));
      c.click();

      // switch driver context to alert
      Alert alrt = driver.switchTo().alert();

      // Get alert text
      String s = alrt.getText();
      System.out.println("Alert text is: " + s);

      //accept alert
      alrt.accept();

      // get text after accepting alert
      WebElement text =driver.findElement(By.xpath("//*[@id='desk']"));
      System.out.println("Text appearing after alert accept: " + text.getText());

      // again get the alert
      c.click();

      // switch driver context to alert
      Alert alrt1 = driver.switchTo().alert();

      // now dismiss alert
      alrt1.dismiss();

      // get text after dismissing alert
      WebElement text1 =driver.findElement(By.xpath("//*[@id='desk']"));
      System.out.println("Text appearing after alert dismiss: " + text1.getText());

      // quitting the browser
      driver.quit();
   }
}

Output

Alert text is: Press a button!
Text appearing after alert accept: You pressed OK!
Text appearing after alert dismiss: You pressed Cancel!

In the above example, we captured the text on the alert and received the message in the console - Alert text is: Press a button!. Then on accepting the alert, we had captured a text which appeared on the page with the message appearing on the console - Text appearing after alert accept: You pressed OK!. Also, on dismissing the alert, we had captured a text which appeared on the page with the message appearing on the console - Text appearing after alert dismiss: You pressed Cancel!.

Example 3 - Prompt Alerts

Let us discuss another alert on a web page as shown in the below image. On clicking the third Click Me button, we would get an alert with the text - What is your name? along with an input box on the web page.

Selenium Alerts Popups 5

Code Implementation

package org.example;

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

public class AlertsPromp {
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 12 secs
      driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);

      // Opening the webpage where we will get alert
      driver.get("https://www.tutorialspoint.com/selenium/practice/alerts.php");

      // identify button for clicking to get alert
      WebElement c =driver.findElement
         (By.xpath("/html/body/main/div/div/div[2]/div[4]/button"));
      c.click();

      // switch driver context to alert
      Alert alrt = driver.switchTo().alert();

      // Get alert text
      String s = alrt.getText();
      System.out.println("Alert text is: " + s);

      // enter text then accept alert
      alrt.sendKeys("Selenium");
      alrt.accept();

      // again get the alert
      c.click();

      // switch driver context to alert
      Alert alrt1 = driver.switchTo().alert();

      // again enter text then dismiss alert
      alrt1.sendKeys("Selenium");
      alrt1.dismiss();

      // quitting the browser
      driver.quit();
   }
}

Output

Alert text is: What is your name?

In the above example, we captured the text on the alert and received the message in the console - Alert text is: What is your name?

Example 4 - Alert with Wait Condition

Let us discuss another alert on a web page as shown in the below image. On clicking the first Click Me button, we would get an alert with the text - Hello just appeared which would appear after 5 seconds.

Selenium Alerts Popups 6

Code Implementation

package org.example;

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.time.Duration;

public class AlertsPromp {
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // Opening the webpage where we will get alert
      driver.get("https://www.tutorialspoint.com/selenium/practice/alerts.php");

      // identify button for clicking to get alert
      WebElement c = driver.findElement
         (By.xpath("/html/body/main/div/div/div[2]/div[2]/button"));
      c.click();

      // explicit wait to expected condition for presence alert
      WebDriverWait wt = new WebDriverWait(driver, Duration.ofSeconds(6));
      wt.until(ExpectedConditions.alertIsPresent());

      // switch driver context to alert
      Alert alrt = driver.switchTo().alert();

      // Get alert text
      String s = alrt.getText();
      System.out.println("Text is: " + s);

      // accept alert
      alrt.accept();

      // quitting the browser
      driver.quit();
   }
}

Output

Text is: Hello just appeared

Conclusion

This concludes our comprehensive take on the tutorial on Selenium WebDriver Alerts & Popups. Weve started with describing basic methods to handle Alerts & Popups in Selenium, and examples to illustrate how to handle different types of alerts & popups in Selenium Webdriver. This equips you with in-depth knowledge of the Selenium WebDriver Alerts & Popups. It is wise to keep practicing what youve learned and exploring others relevant to Selenium to deepen your understanding and expand your horizons.

Advertisements