๐ HOW TO START THIS COURSE
Prerequisites
- Basic Java knowledge (variables, methods, classes)
- Basic Selenium WebDriver understanding
- Java + Maven installed
- Eclipse / IntelliJ IDE
Initial Setup
- Create Maven project
- Add Selenium & TestNG dependencies
- Configure browser drivers
๐ COURSE CONTENT โ STEP BY STEP
Phase 1: Framework Fundamentals
- Why frameworks are required
- Problems with normal Selenium scripts
- Types of automation frameworks
- Introduction to Page Object Model
Phase 2: Page Object Model Design
- POM principles & design pattern
- Creating page classes
- Locators & page actions
- POM vs Page Factory
Phase 3: Project Structure
- Maven folder structure
- Page layer
- Test layer
- Utility layer
- Config management
Phase 4: Test Execution
- TestNG annotations
- Assertions & validations
- Grouping & priorities
- testng.xml
Phase 5: Advanced Framework Concepts
- Reusable utilities
- Wait handling
- Screenshot on failure
- Parallel execution
Phase 6: CI/CD & Industry Practices
- Maven execution
- Jenkins integration
- GitHub integration
- Automated reports
๐ REAL-TIME PROJECT FOLDER STRUCTURE
selenium-pom-framework
โ
โโโ pom.xml
โโโ src
โ โโโ main/java
โ โ โโโ base
โ โ โโโ pages
โ โ โโโ utils
โ โโโ test/java
โ โโโ tests
โ
โโโ testng.xml
๐งฉ LOGIN PAGE OBJECT
public class LoginPage {
WebDriver driver;
By username = By.id("username");
By password = By.id("password");
By loginBtn = By.id("loginBtn");
public LoginPage(WebDriver driver){
this.driver = driver;
}
public void login(String u,String p){
driver.findElement(username).sendKeys(u);
driver.findElement(password).sendKeys(p);
driver.findElement(loginBtn).click();
}
}
๐งช LOGIN TEST SCENARIOS
@Test
public void validLogin(){
LoginPage lp = new LoginPage(driver);
lp.login("admin","admin123");
Assert.assertTrue(driver.getCurrentUrl().contains("dashboard"));
}
๐ HOW THIS COURSE ENDS
- End-to-end automation project
- Complete POM framework
- CI/CD execution via Jenkins
- Interview-ready explanation
- Resume project & GitHub repo
Final Outcome
- Industry-ready Automation Engineer
- Strong framework knowledge
- Real project confidence