Once you take any action (accept or dismiss), it allows to resume performing the task on browser.
There are basically 3 types of alerts
Alert box, Confirm box, and Prompt box.
We will see how to handle each of these diff types of alerts in selenium
A simple alert:
in this either you can accept or dismiss an alertpackage controls;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Alerts1 {
static WebDriver driver;
public static void main(String[] args) {
driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://www.qavalidation.com/p/demo1.html");
driver.findElement(By.id("alert")).click();
if(IsAlertPresent()==1) //simply written a logic to chk if alert present
{
Alert alert=driver.switchTo().alert();
alert.accept();
}
}
public static int IsAlertPresent() {
WebDriverWait wait = new WebDriverWait(driver, 300 /*timeout in seconds*/);
if(wait.until(ExpectedConditions.alertIsPresent())==null)
return 0;
else
return 1;
}
}
Prompt alert
Here we can enter text in alert textbox, check the checkboxes and can accept / dismiss...public static void main(String[] args) throws AWTException {
driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://www.qavalidation.com/p/demo1.html");
//driver.findElement(By.id("alert")).click();
driver.findElement(By.id("prompt")).click();
if(IsAlertPresent()==1) //simply written a logic to chk if alert present
{
Alert alert=driver.switchTo().alert();
alert.sendKeys("Kumar");
alert.accept();
alert.sendKeys("Ramuk");
alert.accept();
Robot r = new Robot();
r.keyPress(KeyEvent.VK_TAB);
Thread.sleep(2000);
r.keyPress(KeyEvent.VK_SPACE);
Thread.sleep(2000);
alert.accept();
}
}
Confirm alert
Either you can accept and dismiss the alert, if u click on "prevent this from..." checkbox, you won't get the alert again for that browser instance...
public static void main(String[] args) throws AWTException, InterruptedException {
driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://www.qavalidation.com/p/demo1.html");
driver.findElement(By.id("confirm")).click();
if(IsAlertPresent()==1) //simply written a logic to chk if alert present
{
Alert alert=driver.switchTo().alert();
alert.dismiss();
Robot r = new Robot();
r.keyPress(KeyEvent.VK_TAB);
r.keyPress(KeyEvent.VK_TAB);
Thread.sleep(1000);
r.keyPress(KeyEvent.VK_SPACE);
alert.accept();
}
}
public static int IsAlertPresent()
{
WebDriverWait wait = new WebDriverWait(driver, 300 /*timeout in seconds*/);
if(wait.until(ExpectedConditions.alertIsPresent())==null)
return 0;
else
return 1;
}




No comments:
Post a Comment