Skip to content

Commit 499f21f

Browse files
committed
Handling alerts
1 parent 6be7a85 commit 499f21f

File tree

4 files changed

+98
-1
lines changed

4 files changed

+98
-1
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package pages;
2+
3+
import org.openqa.selenium.By;
4+
import org.openqa.selenium.WebDriver;
5+
6+
public class AlertsPage {
7+
8+
private WebDriver driver;
9+
private By triggerAlertButton = By.xpath(".//button[text()='Click for JS Alert']");
10+
private By triggerConfirmButton = By.xpath(".//button[text()='Click for JS Confirm']");
11+
private By triggerPromptButton = By.xpath(".//button[text()='Click for JS Prompt']");
12+
13+
private By results = By.id("result");
14+
15+
public AlertsPage(WebDriver driver){
16+
this.driver = driver;
17+
}
18+
19+
public void triggerAlert(){
20+
driver.findElement(triggerAlertButton).click();
21+
}
22+
23+
public void triggerConfirm(){
24+
driver.findElement(triggerConfirmButton).click();
25+
}
26+
27+
public void triggerPrompt(){
28+
driver.findElement(triggerPromptButton).click();
29+
}
30+
31+
public void alert_clickToAccept(){
32+
driver.switchTo().alert().accept();
33+
}
34+
35+
public void alert_clickToDismiss(){
36+
driver.switchTo().alert().dismiss();
37+
}
38+
39+
public String alert_getText(){
40+
return driver.switchTo().alert().getText();
41+
}
42+
43+
public void alert_setInput(String text){
44+
driver.switchTo().alert().sendKeys(text);
45+
}
46+
47+
public String getResult(){
48+
return driver.findElement(results).getText();
49+
}
50+
}

webdriver_java/src/main/java/pages/HomePage.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ public KeyPressesPage clickKeyPresses(){
3131
return new KeyPressesPage(driver);
3232
}
3333

34+
public AlertsPage clickJavaScriptAlerts(){
35+
clickLink("JavaScript Alerts");
36+
return new AlertsPage(driver);
37+
}
38+
3439
private void clickLink(String linkText){
3540
driver.findElement(By.linkText(linkText)).click();
3641
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package alerts;
2+
3+
import base.BaseTests;
4+
import org.testng.annotations.Test;
5+
6+
import static org.testng.Assert.assertEquals;
7+
8+
public class AlertTests extends BaseTests {
9+
10+
@Test
11+
public void testAcceptAlert(){
12+
var alertsPage = homePage.clickJavaScriptAlerts();
13+
alertsPage.triggerAlert();
14+
alertsPage.alert_clickToAccept();
15+
assertEquals(alertsPage.getResult(), "You successfuly clicked an alert", "Results text incorrect");
16+
}
17+
18+
@Test
19+
public void testGetTextFromAlert(){
20+
var alertsPage = homePage.clickJavaScriptAlerts();
21+
alertsPage.triggerConfirm();
22+
String text = alertsPage.alert_getText();
23+
alertsPage.alert_clickToDismiss();
24+
assertEquals(text, "I am a JS Confirm", "Alert text incorrect");
25+
}
26+
27+
@Test
28+
public void testSetInputInAlert(){
29+
var alertsPage = homePage.clickJavaScriptAlerts();
30+
alertsPage.triggerPrompt();
31+
32+
String text = "TAU rocks!";
33+
alertsPage.alert_setInput(text);
34+
alertsPage.alert_clickToAccept();
35+
assertEquals(alertsPage.getResult(), "You entered: " + text, "Results text incorrect");
36+
}
37+
}

webdriver_java/src/test/java/base/BaseTests.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.openqa.selenium.chrome.ChromeDriver;
55
import org.testng.annotations.AfterClass;
66
import org.testng.annotations.BeforeClass;
7+
import org.testng.annotations.BeforeMethod;
78
import pages.HomePage;
89

910
public class BaseTests {
@@ -15,8 +16,12 @@ public class BaseTests {
1516
public void setUp(){
1617
System.setProperty("webdriver.chrome.driver", "resources/chromedriver");
1718
driver = new ChromeDriver();
18-
driver.get("https://the-internet.herokuapp.com/");
19+
goHome();
20+
}
1921

22+
@BeforeMethod
23+
public void goHome(){
24+
driver.get("https://the-internet.herokuapp.com/");
2025
homePage = new HomePage(driver);
2126
}
2227

0 commit comments

Comments
 (0)