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"));
}
}
@BeforeClass
@Before
@Test
@After
@AfterClass
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.
Refer Question 1
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);
}
}
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);
}
}
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();
}
}
Signup