Question { HCL, 9838 }
How do you handle Alerts and Pop Ups?
Answer
@Test
public void plainAlertTest() {
WebElement alertButton;
alertButton = driver.findElement(By.cssSelector("#alertexamples"));
alertButton.click();
assertThat(alertMessage, driver.switchTo().alert().getText());
// accept alert dialog to close
driver.switchTo().alert().accept();
}
@Test
public void confirmAlertTestOK() {
WebElement confirmAlertButton;
confirmAlertButton = driver.findElement(By
.cssSelector("#confirmexample"));
confirmAlertButton.click();
assertThat((driver.switchTo().alert().getText()),
is(confirmAlertMessage));
// accept alert dialog to close via 'OK'
driver.switchTo().alert().accept();
// verify page text is 'true'
String returnText = driver
.findElement(By.cssSelector("#confirmreturn")).getText();
assertThat(returnText, is("true"));
}
@Test
public void confirmAlertTestCancel() {
WebElement confirmAlertButton;
confirmAlertButton = driver.findElement(By
.cssSelector("#confirmexample"));
confirmAlertButton.click();
assertThat((driver.switchTo().alert().getText()),
is(confirmAlertMessage));
// accept alert dialog to close via 'OK'
driver.switchTo().alert().dismiss();
// verify page text is 'false'
String returnText = driver
.findElement(By.cssSelector("#confirmreturn")).getText();
assertThat(returnText, is("false"));
}
@Test
public void promptAlertTestOK() {
WebElement confirmAlertButton;
confirmAlertButton = driver.findElement(By
.cssSelector("#promptexample"));
confirmAlertButton.click();
// verify prompt alert text
assertThat((driver.switchTo().alert().getText()),
is(promptAlertMessage));
// change message
driver.switchTo().alert().sendKeys(promptText);
/*
* accept alert dialog to close via 'OK' how sendKeys help in closing OK
* button, why we simply dont click on click or press enter from
* keyboard.
*/
driver.switchTo().alert().accept();
// verify return text is (promptText)
String returnText = driver.findElement(By.cssSelector("#promptreturn"))
.getText();
assertThat(returnText, is(promptText));
}
@Test
public void promptAlertTestCancel() {
WebElement confirmAlertButton;
confirmAlertButton = driver.findElement(By
.cssSelector("#promptexample"));
confirmAlertButton.click();
// verify prompt alert text
assertThat((driver.switchTo().alert().getText()),
is(promptAlertMessage));
// change message
driver.switchTo().alert().sendKeys(promptText);
// REJECT alert dialog to close via 'Cancel'
driver.switchTo().alert().dismiss();
// verify return text is default "pret"
String returnText = driver.findElement(By.cssSelector("#promptreturn"))
.getText();
assertThat(returnText, is("pret"));
}