Test Overview
This test checks that using a test pattern (Page Object Model) helps keep tests clear and reliable by separating page details from test logic.
This test checks that using a test pattern (Page Object Model) helps keep tests clear and reliable by separating page details from test logic.
import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; 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 { @Test void testValidLogin() { WebDriver driver = new ChromeDriver(); driver.get("https://example.com/login"); LoginPage loginPage = new LoginPage(driver); loginPage.enterUsername("user1"); loginPage.enterPassword("pass123"); loginPage.clickLogin(); WebElement welcomeMessage = driver.findElement(By.id("welcomeMsg")); assertTrue(welcomeMessage.isDisplayed(), "Welcome message should be visible after login"); driver.quit(); } }
| Step | Action | System State | Assertion | Result |
|---|---|---|---|---|
| 1 | Test starts | JUnit test runner initializes | - | PASS |
| 2 | Browser opens ChromeDriver | Chrome browser window opens at blank page | - | PASS |
| 3 | Navigates to https://example.com/login | Login page loads with username, password fields and login button | - | PASS |
| 4 | Creates LoginPage object with driver | Page object ready to interact with login page elements | - | PASS |
| 5 | Calls enterUsername("user1") | Username field found and filled with 'user1' | - | PASS |
| 6 | Calls enterPassword("pass123") | Password field found and filled with 'pass123' | - | PASS |
| 7 | Calls clickLogin() | Login button found and clicked, page processes login | - | PASS |
| 8 | Finds element with id 'welcomeMsg' | Welcome message element is present on page | Check if welcome message is displayed | PASS |
| 9 | Assert welcome message is visible | Welcome message visible to user | assertTrue(welcomeMessage.isDisplayed()) | PASS |
| 10 | Closes browser and ends test | Browser closed, test finished | - | PASS |