This test uses POM to keep page details inside LoginPage class. The test code is simple and easy to read.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class LoginPage {
private WebDriver driver;
private By usernameField = By.id("username");
private By passwordField = By.id("password");
private By loginButton = By.id("loginBtn");
public LoginPage(WebDriver driver) {
this.driver = driver;
}
public void enterUsername(String username) {
driver.findElement(usernameField).sendKeys(username);
}
public void enterPassword(String password) {
driver.findElement(passwordField).sendKeys(password);
}
public void clickLogin() {
driver.findElement(loginButton).click();
}
}
public class LoginTest {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get("https://example.com/login");
LoginPage loginPage = new LoginPage(driver);
loginPage.enterUsername("testuser");
loginPage.enterPassword("testpass");
loginPage.clickLogin();
// Assume after login, URL changes to /home
String currentUrl = driver.getCurrentUrl();
if (currentUrl.contains("/home")) {
System.out.println("Test Passed: Login successful.");
} else {
System.out.println("Test Failed: Login unsuccessful.");
}
driver.quit();
}
}