BaseClass, POM & Junit Test Papers FAQ's

✅ Reusable BaseClass.java

package com.omrbranch.baseclass;
import java.io.File;
import java.io.IOException;
import java.time.Duration;
import java.util.Set;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;

public class BaseClass {
  public static WebDriver driver;

  public static void browserLaunch() {
    driver = new ChromeDriver();
  }

  public static void enterApplnUrl(String url) {
    driver.get(url);
  }

  public static void maximizeWindow() {
    driver.manage().window().maximize();
  }

  public void elementSendKeys(WebElement element, String data) {
    element.sendKeys(data);
  }

  public void elementClick(WebElement element) {
    element.click();
  }

  public String elementGetText(WebElement element) {
    return element.getText();
  }

  public void selectOptionBytext(WebElement element, String text) {
    new Select(element).selectByVisibleText(text);
  }

  public void selectOptionByIndex(WebElement element, int index) {
    new Select(element).selectByIndex(index);
  }

  public void elementSendKeysJs(WebElement element, String data) {
    ((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('value','" + data + "')", element);
  }

  public void switchChildWindow() {
    String parent = driver.getWindowHandle();
    for (String handle : driver.getWindowHandles()) {
      if (!parent.equals(handle)) driver.switchTo().window(handle);
    }
  }

  public static void closeBrowser() {
    driver.quit();
  }

  public void switchToFrame(WebElement element) {
    driver.switchTo().frame(element);
  }

  public void screenshot(String fileName) throws IOException {
    File src = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(src, new File("screenshots/" + fileName + ".png"));
  }
}

🔹 JUnit Execution Order

@BeforeClass
@Before
@Test
@After
@AfterClass

Question:

POM:
Create locators and business logic for login.
id="username_omr"
id="password_omr"
name="greenstechomr" (login button)
BaseClass: Include reusable methods for common actions.
JUnit: Execute the test and perform assertion.
After login, verify that the message "Welcome to Greens Technologys OMR" appears.

✅ BaseClass:

Refer Question 1

✅ LoginPage.java

package com.omrbranch.pages;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import com.omrbranch.baseclass.BaseClass;

public class LoginPage extends BaseClass {
  public LoginPage() {
    PageFactory.initElements(driver, this);
  }

  @FindBy(id = "username_omr")
  private WebElement txtEmailId;

  @FindBy(id = "password_omr")
  private WebElement txtPassword;

  @FindBy(name = "greenstechomr")
  private WebElement btnLogin;

  public void login(String userName, String password) {
    elementSendKeys(txtEmailId, userName);
    elementSendKeys(txtPassword, password);
    elementClick(btnLogin);
  }
}

✅ SearchProductPage.java

package com.omrbranch.pages;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import com.omrbranch.baseclass.BaseClass;

public class SearchProductPage extends BaseClass {
  public SearchProductPage() {
    PageFactory.initElements(driver, this);
  }

  @FindBy(id = "login_message")
  private WebElement textLoginMessage;

  public String getLoginMessageText() {
    return elementGetText(textLoginMessage);
  }
}

✅ Sample.java (JUnit Test Class)

package com.omrbranch;
import org.junit.*;
import com.omrbranch.baseclass.BaseClass;
import com.omrbranch.pages.LoginPage;
import com.omrbranch.pages.SearchProductPage;

public class Sample extends BaseClass {

  @BeforeClass
  public static void browserSetUp() {
    browserLaunch();
    enterApplnUrl("https://omrbranch.com");
    maximizeWindow();
  }

  @Test
  public void verifyLogin() {
    LoginPage loginPage = new LoginPage();
    loginPage.login("Greens OMR", "Hello@1234567");

    SearchProductPage searchPage = new SearchProductPage();
    String actualMsg = searchPage.getLoginMessageText();
    Assert.assertEquals("Welcome to Greens Technologys OMR", actualMsg);
  }

  @AfterClass
  public static void applnClose() {
    closeBrowser();
  }
}