Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
Selenium-Chrome-POM
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
Kyle Muldoon
Selenium-Chrome-POM
Commits
b28de04a
Commit
b28de04a
authored
Apr 14, 2021
by
Kyle Muldoon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
broke down each web component into class. Successfully validated user info at Account Settings page
parent
f94de708
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
145 additions
and
18 deletions
+145
-18
TODO.md
TODO.md
+0
-0
AccountSettingsPagePF.java
src/test/java/Pages/AccountSettingsPagePF.java
+44
-0
HomePagePF.java
src/test/java/Pages/HomePagePF.java
+1
-1
LoggedInHomePagePF.java
src/test/java/Pages/LoggedInHomePagePF.java
+29
-0
LoggedInRightSideBarPF.java
src/test/java/Pages/LoggedInRightSideBarPF.java
+29
-0
LoginModalPF.java
src/test/java/Pages/LoginModalPF.java
+1
-1
RightSideBarPF.java
src/test/java/Pages/RightSideBarPF.java
+1
-1
SafewayLoginTest.java
src/test/java/SafewayLoginTest.java
+40
-15
SafewayLoginTest.class
target/test-classes/SafewayLoginTest.class
+0
-0
No files found.
src/test/java/
TODO.md
→
TODO.md
View file @
b28de04a
File moved
src/test/java/Pages/AccountSettingsPagePF.java
0 → 100644
View file @
b28de04a
package
Pages
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebElement
;
import
org.openqa.selenium.support.FindBy
;
import
org.openqa.selenium.support.How
;
import
org.openqa.selenium.support.PageFactory
;
import
org.openqa.selenium.support.ui.ExpectedConditions
;
import
org.openqa.selenium.support.ui.WebDriverWait
;
public
class
AccountSettingsPagePF
{
WebDriver
driver
;
WebDriverWait
wdw
;
@FindBy
(
how
=
How
.
ID
,
using
=
"input-firstName"
)
WebElement
firstNameField
;
@FindBy
(
how
=
How
.
ID
,
using
=
"input-lastName"
)
WebElement
lastNameField
;
@FindBy
(
how
=
How
.
ID
,
using
=
"emailIdaccount"
)
WebElement
emailField
;
public
AccountSettingsPagePF
(
WebDriver
driver
)
{
this
.
driver
=
driver
;
this
.
wdw
=
new
WebDriverWait
(
this
.
driver
,
1
);
PageFactory
.
initElements
(
driver
,
this
);
}
public
String
getFirstName
()
{
wdw
.
until
(
ExpectedConditions
.
elementToBeClickable
(
firstNameField
));
return
firstNameField
.
getAttribute
(
"value"
);
}
public
String
getLastName
()
{
wdw
.
until
(
ExpectedConditions
.
elementToBeClickable
(
lastNameField
));
return
lastNameField
.
getAttribute
(
"value"
);
}
public
String
getEmail
()
{
wdw
.
until
(
ExpectedConditions
.
elementToBeClickable
(
emailField
));
return
emailField
.
getAttribute
(
"value"
);
}
}
src/test/java/Page
Component
s/HomePagePF.java
→
src/test/java/Pages/HomePagePF.java
View file @
b28de04a
package
Page
Component
s
;
package
Pages
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebElement
;
import
org.openqa.selenium.WebElement
;
...
...
src/test/java/
AccountSettingsPOM
.java
→
src/test/java/
Pages/LoggedInHomePagePF
.java
View file @
b28de04a
package
Pages
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebElement
;
import
org.openqa.selenium.WebElement
;
import
org.openqa.selenium.support.FindBy
;
import
org.openqa.selenium.support.FindBy
;
import
org.openqa.selenium.support.How
;
import
org.openqa.selenium.support.How
;
import
org.openqa.selenium.support.PageFactory
;
import
org.openqa.selenium.support.ui.ExpectedConditions
;
import
org.openqa.selenium.support.ui.WebDriverWait
;
import
org.openqa.selenium.support.ui.WebDriverWait
;
public
class
AccountSettingsPOM
{
public
class
LoggedInHomePagePF
{
WebDriver
driver
;
WebDriver
driver
;
WebDriverWait
wdw
;
WebDriverWait
wdw
;
@FindBy
(
how
=
How
.
PARTIAL_LINK_TEXT
,
using
=
"Account"
)
WebElement
expandAccountOptionsButton
;
WebElement
expandAccountOptionsButton
;
WebElement
accountSettingsButton
;
WebElement
userNameInputBox
;
WebElement
userPasswordInputBox
;
WebElement
signInButton
;
public
LoggedInHomePagePF
(
WebDriver
driver
)
{
this
.
driver
=
driver
;
this
.
wdw
=
new
WebDriverWait
(
this
.
driver
,
1
);
PageFactory
.
initElements
(
driver
,
this
);
}
public
void
revealRightSidebarLoggedIn
()
{
wdw
.
until
(
ExpectedConditions
.
elementToBeClickable
(
expandAccountOptionsButton
));
expandAccountOptionsButton
.
click
();
}
}
}
src/test/java/Pages/LoggedInRightSideBarPF.java
0 → 100644
View file @
b28de04a
package
Pages
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebElement
;
import
org.openqa.selenium.support.FindBy
;
import
org.openqa.selenium.support.How
;
import
org.openqa.selenium.support.PageFactory
;
import
org.openqa.selenium.support.ui.ExpectedConditions
;
import
org.openqa.selenium.support.ui.WebDriverWait
;
public
class
LoggedInRightSideBarPF
{
WebDriver
driver
;
WebDriverWait
wdw
;
@FindBy
(
how
=
How
.
PARTIAL_LINK_TEXT
,
using
=
"Account Settings"
)
WebElement
revealAccountSettingsButton
;
public
LoggedInRightSideBarPF
(
WebDriver
driver
)
{
this
.
driver
=
driver
;
this
.
wdw
=
new
WebDriverWait
(
this
.
driver
,
1
);
PageFactory
.
initElements
(
driver
,
this
);
}
public
void
revealAccountSettings
()
{
wdw
.
until
(
ExpectedConditions
.
elementToBeClickable
(
revealAccountSettingsButton
));
revealAccountSettingsButton
.
click
();
}
}
src/test/java/Page
Component
s/LoginModalPF.java
→
src/test/java/Pages/LoginModalPF.java
View file @
b28de04a
package
Page
Component
s
;
package
Pages
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebElement
;
import
org.openqa.selenium.WebElement
;
...
...
src/test/java/Page
Component
s/RightSideBarPF.java
→
src/test/java/Pages/RightSideBarPF.java
View file @
b28de04a
package
Page
Component
s
;
package
Pages
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebElement
;
import
org.openqa.selenium.WebElement
;
...
...
src/test/java/SafewayLoginTest.java
View file @
b28de04a
import
PageComponents.HomePagePF
;
import
Pages.*
;
import
PageComponents.LoginModalPF
;
import
PageComponents.RightSideBarPF
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.Test
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.chrome.ChromeDriver
;
import
org.openqa.selenium.chrome.ChromeDriver
;
import
java.io.FileInputStream
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.util.Properties
;
import
java.util.Properties
;
import
static
org
.
junit
.
Assert
.*;
public
class
SafewayLoginTest
{
public
class
SafewayLoginTest
{
...
@@ -19,26 +17,60 @@ public class SafewayLoginTest {
...
@@ -19,26 +17,60 @@ public class SafewayLoginTest {
@Test
@Test
public
void
testSafewayLogin
()
throws
InterruptedException
{
public
void
testSafewayLogin
()
throws
InterruptedException
{
// Expected field values to test against
String
expectedFName
=
"Nisum"
;
String
expectedLName
=
"TestAcct"
;
String
expectedEmail
=
"vkrijegccvsknuvnpv@miucce.com"
;
// Get browser driver for OS as well as user credentials for login
setup
();
setup
();
// Initialize test browser session
WebDriver
driver
=
new
ChromeDriver
();
WebDriver
driver
=
new
ChromeDriver
();
// Initialize browser control objects for Safeway.com
HomePagePF
homePage
=
new
HomePagePF
(
driver
);
HomePagePF
homePage
=
new
HomePagePF
(
driver
);
RightSideBarPF
rightSideBar
=
new
RightSideBarPF
(
driver
);
RightSideBarPF
rightSideBar
=
new
RightSideBarPF
(
driver
);
LoginModalPF
loginModal
=
new
LoginModalPF
(
driver
);
LoginModalPF
loginModal
=
new
LoginModalPF
(
driver
);
LoggedInHomePagePF
loggedInHomePage
=
new
LoggedInHomePagePF
(
driver
);
LoggedInRightSideBarPF
loggedInRightSideBar
=
new
LoggedInRightSideBarPF
(
driver
);
AccountSettingsPagePF
accountSettingsPage
=
new
AccountSettingsPagePF
(
driver
);
// Perform user login and arrive at account settings page
homePage
.
visitSafewayHomepage
();
homePage
.
visitSafewayHomepage
();
homePage
.
revealRightSidebar
();
homePage
.
revealRightSidebar
();
rightSideBar
.
revealLoginModal
();
rightSideBar
.
revealLoginModal
();
loginModal
.
fillUserInfo
(
safewayLoginCreds
.
getProperty
(
"username"
),
safewayLoginCreds
.
getProperty
(
"password"
));
loginModal
.
fillUserInfo
(
safewayLoginCreds
.
getProperty
(
"username"
),
safewayLoginCreds
.
getProperty
(
"password"
));
loginModal
.
sendCredentials
();
loginModal
.
sendCredentials
();
Thread
.
sleep
(
3000
);
loggedInHomePage
.
revealRightSidebarLoggedIn
();
loggedInRightSideBar
.
revealAccountSettings
();
// Extract user info from account settings page, compare against expected
assertEquals
(
expectedFName
,
accountSettingsPage
.
getFirstName
());
assertEquals
(
expectedLName
,
accountSettingsPage
.
getLastName
());
assertEquals
(
expectedEmail
,
accountSettingsPage
.
getEmail
());
// Tear down the test session. It passed
System
.
out
.
println
(
"ALL TEST CASES PASSED!"
);
Thread
.
sleep
(
10000
);
Thread
.
sleep
(
10000
);
driver
.
quit
();
driver
.
quit
();
}
}
public
void
setup
()
{
public
void
setup
()
{
pollSystemInfo
();
pollCredentials
();
System
.
out
.
println
(
"===================================================="
);
System
.
out
.
printf
(
"Running login test using %s on %s\n"
,
browser
,
OS
);
System
.
out
.
println
(
"username:\t"
+
this
.
safewayLoginCreds
.
getProperty
(
"username"
));
System
.
out
.
println
(
"password:\t"
+
this
.
safewayLoginCreds
.
getProperty
(
"password"
));
System
.
out
.
println
(
"===================================================="
);
}
public
void
pollSystemInfo
()
{
/////////////////////
/////////////////////
// Get environment information
// Get environment information
/////////////////////
/////////////////////
...
@@ -50,23 +82,18 @@ public class SafewayLoginTest {
...
@@ -50,23 +82,18 @@ public class SafewayLoginTest {
System
.
setProperty
(
"webdriver.chrome.driver"
,
System
.
setProperty
(
"webdriver.chrome.driver"
,
"/Users/kmuldoon/Dev/practice/testing/Selenium/Selenium-POM-Safeway/src/test/resources/chromedriver"
);
"/Users/kmuldoon/Dev/practice/testing/Selenium/Selenium-POM-Safeway/src/test/resources/chromedriver"
);
break
;
break
;
case
"Windows"
:
case
"Windows"
:
;
;
break
;
break
;
case
"Linux"
:
case
"Linux"
:
;
;
break
;
break
;
default
:
default
:
System
.
out
.
println
(
"Unsupported OS"
);
System
.
out
.
println
(
"Unsupported OS"
);
}
}
}
public
void
pollCredentials
()
{
System
.
out
.
printf
(
"Running login test using %s on %s\n"
,
browser
,
OS
);
/////////////////////
/////////////////////
// Get Login Credentials
// Get Login Credentials
/////////////////////
/////////////////////
...
@@ -77,12 +104,10 @@ public class SafewayLoginTest {
...
@@ -77,12 +104,10 @@ public class SafewayLoginTest {
// load a properties file
// load a properties file
this
.
safewayLoginCreds
.
load
(
input
);
this
.
safewayLoginCreds
.
load
(
input
);
// get the property value and print it out
System
.
out
.
println
(
"username:\t"
+
this
.
safewayLoginCreds
.
getProperty
(
"username"
));
System
.
out
.
println
(
"password:\t"
+
this
.
safewayLoginCreds
.
getProperty
(
"password"
));
}
catch
(
IOException
ex
)
{
}
catch
(
IOException
ex
)
{
ex
.
printStackTrace
();
ex
.
printStackTrace
();
}
}
}
}
}
}
\ No newline at end of file
target/test-classes/SafewayLoginTest.class
View file @
b28de04a
No preview for this file type
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