Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SeleniumTraining
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Qazi Zain
SeleniumTraining
Commits
0f45dd3f
Commit
0f45dd3f
authored
Nov 21, 2024
by
Qazi Zain
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated POM_Structure_code
parent
3ccb3ed7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
50 additions
and
72 deletions
+50
-72
StepDefination.java
...ava/POM_Structure_code/StepDefination/StepDefination.java
+16
-8
LoginTest.java
src/main/java/POM_Structure_code/TestClasses/LoginTest.java
+28
-51
BaseTest.java
src/main/java/POM_Structure_code/Utils/BaseTest.java
+6
-13
No files found.
src/main/java/POM_Structure_code/StepDefination/StepDefination.java
View file @
0f45dd3f
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
();
// Verify
ing if login was successful
test
.
validateLogin
();
// Verify
login was successful using LoginTest
}
}
src/main/java/POM_Structure_code/TestClasses/LoginTest.java
View file @
0f45dd3f
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)
}
}
src/main/java/POM_Structure_code/Utils/BaseTest.java
View file @
0f45dd3f
...
...
@@ -6,23 +6,16 @@ import org.openqa.selenium.firefox.FirefoxDriver;
import
java.time.Duration
;
public
class
BaseTest
{
p
rotected
WebDriver
obj
;
p
ublic
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
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment