Selenium Web Driver : Handle Confirm Box using Java

41,982

Solution 1

different dialogs handling using selenium webDriver:

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class JavaScriptAlertTest {

public static void main(String[] args) {

    WebDriver myTestDriver = new FirefoxDriver();
    myTestDriver.get("...blablabla....");

    myTestDriver.manage().window().maximize();

    myTestDriver.findElement(By.xpath("//input[@value = 'alert']")).click();

    Alert javascriptAlert = myTestDriver.switchTo().alert();
    System.out.println(javascriptAlert.getText()); // Get text on alert box
    javascriptAlert.accept();

    System.out.println("*************prompt******************************************");

    myTestDriver.findElement(By.xpath("//input[@value = 'prompt']")).click();

    Alert javascriptprompt = myTestDriver.switchTo().alert();
    javascriptprompt.sendKeys("This is Selenium Training");

    System.out.println(javascriptprompt.getText()); // Get text on alert box

    javascriptprompt.accept();
    javascriptprompt = myTestDriver.switchTo().alert();

    System.out.println(javascriptprompt.getText()); // Get text on alert box
    javascriptprompt.accept();

    myTestDriver.findElement(By.xpath("//input[@value = 'prompt']")).click();

    javascriptprompt = myTestDriver.switchTo().alert();

    System.out.println(javascriptprompt.getText()); // Get text on alert box

    javascriptprompt.dismiss();
    javascriptprompt = myTestDriver.switchTo().alert();

    System.out.println(javascriptprompt.getText()); // Get text on alert box
    javascriptprompt.accept();

    System.out.println("***********************************confirm dialog box****************************");
    myTestDriver.findElement(By.xpath("//input[@value = 'confirm']")).click();

    Alert javascriptconfirm = myTestDriver.switchTo().alert();
    javascriptconfirm.accept();

    javascriptconfirm = myTestDriver.switchTo().alert();
    System.out.println(javascriptconfirm.getText()); // Get text on alert box
    javascriptconfirm.accept();

    myTestDriver.findElement(By.xpath("//input[@value = 'confirm']")).click();
    javascriptconfirm = myTestDriver.switchTo().alert();

    javascriptconfirm.dismiss();
    javascriptconfirm = myTestDriver.switchTo().alert();
    System.out.println(javascriptconfirm.getText()); // Get text on alert box
    javascriptconfirm.accept();

}
}

Hope it helps you:)

Solution 2

protected void handleAlert() {
    try {
        getDriver().switchTo().alert().accept();
    } catch (NoAlertPresentException e) {
        // That's fine.
    }
}
Share:
41,982
KingJames
Author by

KingJames

Updated on August 05, 2022

Comments

  • KingJames
    KingJames over 1 year

    Hi I am using the following code for handling the alert box after clicking an action but it isn't working Can somebody please help.

    This is where I call the handler. clickOnAlert() after clickOnAddQuote() is called alert box appears.

    System.out.println("before add to quote");
    this.clickOnAddQuote();
    System.out.println("before alert");
    this.clickOnAlert();
    System.out.println("after alert");
    

    function clickOnAlert()

    public void clickOnAlert() {
            System.out.println("In click");
            Alert alert = webdriverSession().switchTo().alert();
            System.out.println("after constructor");
            alert.accept();
        }
    

    Please help. Thanks

  • KingJames
    KingJames over 11 years
    It is going into catch block. I am sure confirm box will come but still i is not able to identify that. Is alert is different than confirm here? Do I need some other code?
  • Alexander Mills
    Alexander Mills over 6 years
    all I see is switchTo().alert().accept() in your example...what about handling window.confirm() or window.prompt()?