Implement POM without Page Factory-
Our scenario is we need to login an application (Orange HRM) to navigate on home page. So here we are dealing with two page –
1. Login Page
2. Home Page (Once you logged in)
So we will create two classes for every page
Step 1:
Create a class for Orange HRM Login Page
package pageObjectModel;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
public class LoginPage {
WebDriver driver;
// Creating Elements using element locators
By userName = By.xpath("//input[@id='txtUsername']");
By passWord = By.id("txtPassword");
By loginButton = By.name("btnLogin");
// Creating an constructor
public LoginPage(WebDriver driver) {
this.driver = driver;
}
// Create user actions
// Set or type user name in textbox
public void typeUserName(String UN) {
driver.findElement(userName).sendKeys(UN);
}
// Return a value from user name
public void getUserNameValue() {
driver.findElement(userName).getAttribute("value");
}
// Set or type password in textbox
public void typePassWord(String PW) {
driver.findElement(passWord).sendKeys(PW);
}
// Click on login button
public void clickLogin() {
driver.findElement(loginButton).click();
}
}
Step 2:
Create a class for Orange HRM Home Page
package pageObjectModel;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
public class HomePage {
WebDriver driver;
By homePageUserName = By.xpath("//a[@id='welcome']");
// Creating an constructor
public HomePage(WebDriver driver) {
this.driver = driver;
}
// Get the User name from Home Page
public String getHomePageDashboardUserName() {
return driver.findElement(homePageUserName).getText();
}
}
Step 3:
Creating Simple Orange HRM POM Test case
package pageObjectModel;
import org.testng.annotations.Test;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.BeforeTest;
public class OrangeHRMLoginTest {
WebDriver driver;
orangeHRMLoginPage login;
orangeHRMHomePage homePage;
@Test
public void loginTestCase() {
System.setProperty("webdriver.chrome.driver", "F:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("https://opensource-demo.orangehrmlive.com/index.php/auth/login");
login = new orangeHRMLoginPage(driver);
// 1.Enter the user name
login.typeUserName("admin");
// 2.Enter the pass word
login.typePassWord("admin123");
// 3.Click on login button
login.clickLogin();
// 4.go to the home page
homePage = new orangeHRMHomePage(driver);
// 5.Verify home page
Assert.assertEquals(homePage.getHomePageDashboardUserName(), "Welcome Admin");
}
}
Next