Skip to content

Commit 40f959a

Browse files
committed
Introducing framework page object classes
1 parent 61be725 commit 40f959a

File tree

4 files changed

+69
-9
lines changed

4 files changed

+69
-9
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package pages;
2+
3+
import org.openqa.selenium.By;
4+
import org.openqa.selenium.WebDriver;
5+
6+
public class HomePage {
7+
8+
private WebDriver driver;
9+
private By formAuthenticationLink = By.linkText("Form Authentication");
10+
11+
public HomePage(WebDriver driver){
12+
this.driver = driver;
13+
}
14+
15+
public LoginPage clickFormAuthentication(){
16+
driver.findElement(formAuthenticationLink).click();
17+
return new LoginPage(driver);
18+
}
19+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package pages;
2+
3+
import org.openqa.selenium.By;
4+
import org.openqa.selenium.WebDriver;
5+
6+
public class LoginPage {
7+
8+
private WebDriver driver;
9+
private By usernameField = By.id("username");
10+
private By passwordField = By.id("password");
11+
private By loginButton = By.cssSelector("#login button");
12+
13+
public LoginPage(WebDriver driver){
14+
this.driver = driver;
15+
}
16+
17+
public void setUsername(String username){
18+
driver.findElement(usernameField).sendKeys(username);
19+
}
20+
21+
public void setPassword(String password){
22+
driver.findElement(passwordField).sendKeys(password);
23+
}
24+
25+
public SecureAreaPage clickLoginButton(){
26+
driver.findElement(loginButton).click();
27+
return new SecureAreaPage(driver);
28+
}
29+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package pages;
2+
3+
import org.openqa.selenium.By;
4+
import org.openqa.selenium.WebDriver;
5+
6+
public class SecureAreaPage {
7+
8+
private WebDriver driver;
9+
private By statusAlert = By.id("flash");
10+
11+
public SecureAreaPage(WebDriver driver){
12+
this.driver = driver;
13+
}
14+
15+
public String getAlertText(){
16+
return driver.findElement(statusAlert).getText();
17+
}
18+
}

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

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,20 @@
11
package base;
22

3-
import org.openqa.selenium.By;
43
import org.openqa.selenium.WebDriver;
5-
import org.openqa.selenium.WebElement;
64
import org.openqa.selenium.chrome.ChromeDriver;
7-
8-
import java.util.List;
5+
import pages.HomePage;
96

107
public class BaseTests {
118

129
private WebDriver driver;
10+
protected HomePage homePage;
1311

1412
public void setUp(){
1513
System.setProperty("webdriver.chrome.driver", "resources/chromedriver");
1614
driver = new ChromeDriver();
1715
driver.get("https://the-internet.herokuapp.com/");
1816

19-
List<WebElement> links = driver.findElements(By.tagName("a"));
20-
System.out.println(links.size());
21-
22-
WebElement inputsLink = driver.findElement(By.linkText("Input"));
23-
inputsLink.click();
17+
homePage = new HomePage(driver);
2418

2519
driver.quit();
2620
}

0 commit comments

Comments
 (0)