Commit 0f45dd3f authored by Qazi Zain's avatar Qazi Zain

updated POM_Structure_code

parent 3ccb3ed7
package POM_Structure_code.StepDefination;
import POM_Structure_code.TestClasses.LoginTest;
import POM_Structure_code.Utils.BaseTest;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;
import io.cucumber.java.en.Then;
import io.cucumber.java.Before;
public class StepDefination extends BaseTest {
public class StepDefination {
LoginTest test; // Declare LoginTest here
LoginTest test = new LoginTest();
// Use a zero-argument constructor
public StepDefination() {
// Constructor should remain empty
}
@Before
public void setUp() {
// Initialize the LoginTest object in the @Before method
test = new LoginTest();
test.setUpTest(); // Set up the test before each scenario
}
@Given("Present on login page")
public void presentOnLoginPage() {
setUp();
obj.get("https://rahulshettyacademy.com/locatorspractice/"); // Navigate to the login page
test.setUpTest(); // Reusing LoginTest setup
test.obj.get("https://rahulshettyacademy.com/locatorspractice/");
}
@When("I enter username {string} and password {string} and click on login button")
public void enteringData(String username, String password) {
test.loginTest(username, password); // Using the test class's method to perform login
test.loginTest(username, password); // Call LoginTest method for login
}
@Then("user should login")
public void verifyLogin() {
test.validateLogin(); // Verifying if login was successful
test.validateLogin(); // Verify login was successful using LoginTest
}
}
package POM_Structure_code.TestClasses;
import POM_Structure_code.PageObjectClasses.HomePage;
import POM_Structure_code.PageObjectClasses.LoginPage;
import org.testng.Assert;
......@@ -10,75 +11,51 @@ import POM_Structure_code.Utils.BaseTest;
public class LoginTest extends BaseTest {
// Page Object instances
private LoginPage login;
private HomePage home;
@BeforeMethod
public void setUpTest()
{
setUp();
public void setUpTest() {
setUp(); // BaseTest setup (browser setup)
login = new LoginPage(obj);
home = new HomePage(obj);
}
@Test(dataProvider = "sendData" , priority = 1)
public void loginTest(String Username, String Password)
{
@Test(dataProvider = "sendData", priority = 1)
public void loginTest(String Username, String Password) {
obj.get("https://rahulshettyacademy.com/locatorspractice/");
// create object of page classes for use;
LoginPage login = new LoginPage(obj);
//-------------> now write test.
login.enterUsername(Username);
login.enterPassword(Password);
login.clickSignButton();
// --------------> Add Assertion.
Assert.assertEquals(Password,"rahulshettyacademy");
// Assertion logic for login
Assert.assertEquals(Password, "rahulshettyacademy");
}
@Test (priority = 2)
public void validateLogin()
{
HomePage home = new HomePage(obj);
LoginPage lg = new LoginPage(obj);
@Test(priority = 2)
public void validateLogin() {
obj.get("https://rahulshettyacademy.com/locatorspractice/");
login.enterUsername("maaz");
login.enterPassword("rahulshettyacademy");
login.clickSignButton();
lg.enterUsername("maaz");
lg.enterPassword("rahulshettyacademy");
lg.clickSignButton();
String validate=home.getText();
Assert.assertEquals(validate,"Hello");
String validate = home.getText();
Assert.assertEquals(validate, "Hello");
}
@DataProvider
public Object[][] sendData()
{
// Correct the index order for username and password in the array
Object[][] data = new Object[3][2];
data[0][0] = "Zain"; // username
data[0][1] = "rahulshettyacademy"; // password
data[1][0] = "yawar"; // username
data[1][1] = "rahulshettyacademy"; // password
data[2][0] = "Haseeb"; // username
data[2][1] = "hi"; // password
return data;
public Object[][] sendData() {
return new Object[][]{
{"Zain", "rahulshettyacademy"},
{"yawar", "rahulshettyacademy"},
{"Haseeb", "hi"}
};
}
@AfterMethod
public void tearDownTest()
{
tearDown();
public void tearDownTest() {
tearDown(); // BaseTest teardown (close the browser)
}
}
......@@ -6,23 +6,16 @@ import org.openqa.selenium.firefox.FirefoxDriver;
import java.time.Duration;
public class BaseTest {
protected WebDriver obj;
public WebDriver obj;
public void setUp()
{
public void setUp() {
obj = new FirefoxDriver();
//Applying wait for synchronization
obj.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));
}
public void tearDown()
{
if(obj!=null)
obj.close();
public void tearDown() {
if (obj != null) {
obj.quit(); // Use quit instead of close to make sure the browser session is fully terminated
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment