Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
84860a0
Started putting together playwright content
jredingcsv Apr 8, 2022
b5f3b21
Merge branch 'Add_Interfaces' into playright_support
jredingcsv Apr 8, 2022
b6aa4df
more edits
jredingcsv Apr 8, 2022
198d277
Merge branch 'main' into playright_support
jredingcsv Apr 8, 2022
52ed2dd
getting closer
jredingcsv Apr 9, 2022
e6fbed9
Merge branch 'Add_Interfaces' into playright_support
jredingcsv Apr 10, 2022
d4d3dd8
more error resolutions
jredingcsv Apr 10, 2022
ac79cb5
Merge branch 'Add_Interfaces' into playright_support
jredingcsv Apr 10, 2022
3570546
more error resolutions
jredingcsv Apr 11, 2022
8e83dd2
fixed enough to run tests
jredingcsv Apr 11, 2022
4d94590
fixed enough to run tests
jredingcsv Apr 11, 2022
955195c
updated pom
jredingcsv Apr 11, 2022
ace26ad
comments added
jredingcsv Apr 11, 2022
535f5b1
checkstyle issue resolutions
jredingcsv Apr 11, 2022
e6bc5d3
checkstyle issue resolutions
jredingcsv Apr 11, 2022
8f7d5f5
small wait change for getElementAttributeTest
jredingcsv Apr 11, 2022
58af6fa
checkstyle updates
jredingcsv Apr 11, 2022
237e470
naming module properly
jredingcsv Apr 11, 2022
6c7262e
small formatting changes
jredingcsv Apr 12, 2022
edc5eab
add playwright module in pom
jredingcsv Apr 12, 2022
1da7f9a
change switch statements back
jredingcsv Apr 12, 2022
fa9ea56
some more changes
jredingcsv Apr 12, 2022
36a049a
more edits
jredingcsv Apr 13, 2022
2eb4d4b
Merge branch 'Add_Interfaces' into playright_support
jredingcsv Apr 13, 2022
5b265fd
Merge branch 'main' into playright_support
jredingcsv Apr 13, 2022
bfaf220
comment updates
jredingcsv Apr 14, 2022
29670f1
Merge branch 'main' into playright_support
jredingcsv Apr 15, 2022
09bdd8d
some updated changed
jredingcsv Apr 15, 2022
a9a0d87
updated config
jredingcsv Apr 15, 2022
ddf1ec5
started adding other unit tests
jredingcsv Apr 15, 2022
23d6dcf
Address style and test run errors
twalshcsv Apr 15, 2022
856f438
Delete PageDriverUnitTest2.java
twalshcsv Apr 15, 2022
22786cc
Merge branch 'main' into playright_support
jredingcsv Apr 15, 2022
cd0e1c5
Merge remote-tracking branch 'origin/playright_support' into playrigh…
jredingcsv Apr 15, 2022
6a78040
added page driver factory unit tests
jredingcsv Apr 15, 2022
ce72345
added and updated unit tests
jredingcsv Apr 16, 2022
add46e3
added and updated unit tests
jredingcsv Apr 16, 2022
ad79eb7
one test fix
jredingcsv Apr 16, 2022
6f23dec
checkstyle fix
jredingcsv Apr 16, 2022
ec1ca7a
more unit test updates
jredingcsv Apr 18, 2022
08bd691
more unit test updates
jredingcsv Apr 18, 2022
5f448af
Merge branch 'main' into playright_support
jredingcsv Apr 18, 2022
ad2d573
checkstyle updates
jredingcsv Apr 18, 2022
2ec8291
test updates
jredingcsv Apr 20, 2022
b9294cd
test updates
jredingcsv Apr 20, 2022
7053f06
test updates
jredingcsv Apr 20, 2022
4e7d28f
some more updates
jredingcsv Apr 22, 2022
163ab64
Merge branch 'main' into playright_support
twalshcsv Apr 29, 2022
abdd26b
got all unit tests to pass locally
jredingcsv Apr 29, 2022
3229c08
Merge branch 'main' into playright_support
jredingcsv Apr 29, 2022
2d5eda9
change config headless to work
jredingcsv Apr 29, 2022
fd1d764
changed name of playwright driver manager
jredingcsv Apr 29, 2022
d4aec6a
Address double test object creation
twalshcsv May 2, 2022
1d10e56
Move to Chrome
twalshcsv May 2, 2022
8b57dc9
Make sure playwright is installed
twalshcsv May 2, 2022
c7bc517
Update maven.yml
twalshcsv May 2, 2022
c7a9a94
Update action.yml
twalshcsv May 2, 2022
f8f025d
Stop making config checks be case sensitive
twalshcsv May 2, 2022
c6271d6
Update maven.yml
twalshcsv May 2, 2022
bfe020b
TESTING
twalshcsv May 2, 2022
faac95c
clean up some playwright pages
jredingcsv May 2, 2022
1a6f184
Update action.yml
twalshcsv May 2, 2022
6d89026
Update action.yml
twalshcsv May 2, 2022
0920e1b
Hide for debug
twalshcsv May 2, 2022
eab75a5
Testing
twalshcsv May 2, 2022
018bea2
Debug
twalshcsv May 2, 2022
610accc
Debug
twalshcsv May 2, 2022
9c00435
More testing
twalshcsv May 3, 2022
172452a
Use factory
twalshcsv May 3, 2022
07980a1
Update PageDriverFactoryUnitTest.java
twalshcsv May 3, 2022
074d397
Testing
twalshcsv May 3, 2022
3a432b5
Update PageDriverFactoryUnitTest.java
twalshcsv May 3, 2022
204b9fb
Testing
twalshcsv May 3, 2022
fb60cb4
Put back tests and logging
twalshcsv May 3, 2022
9a9a123
Fix setup
twalshcsv May 3, 2022
3b34c3c
Remove debug job steps
twalshcsv May 3, 2022
0c30079
Update PlaywrightSyncElementUnitTest.java
twalshcsv May 3, 2022
f7b6e0e
Add back Playwright setup
twalshcsv May 3, 2022
db5b322
Remove unneeded check
twalshcsv May 3, 2022
dd2fbb9
Merge remote-tracking branch 'origin/playright_support' into playrigh…
jredingcsv May 3, 2022
26f55d7
Update maven.yml
twalshcsv May 3, 2022
36bef3d
Allow get version to run on PRs
twalshcsv May 3, 2022
54896db
Merge remote-tracking branch 'origin/playright_support' into playrigh…
jredingcsv May 3, 2022
e016070
added more test coverage
jredingcsv May 3, 2022
2213875
checkstyle updates
jredingcsv May 3, 2022
2b69ee8
more code coverage
jredingcsv May 3, 2022
b13e411
Merge branch 'main' into playright_support
jredingcsv May 3, 2022
48f181d
change comment for proxy stuff
jredingcsv May 3, 2022
0247043
Tweak code so it will work on the build server
twalshcsv May 4, 2022
4beb384
Tweak logging
twalshcsv May 4, 2022
5d0b743
Fix style
twalshcsv May 4, 2022
d3d5556
Merge remote-tracking branch 'origin/playright_support' into playrigh…
jredingcsv May 4, 2022
5a1dcaf
Don't keep smaller resolution and only keep logs for failed tests
twalshcsv May 4, 2022
b1c5a95
Merge branch 'playright_support' of https://github.com/CognizantOpenS…
twalshcsv May 4, 2022
7d8155f
use file for element than hard code function
jredingcsv May 4, 2022
23651bd
Merge remote-tracking branch 'origin/playright_support' into playrigh…
jredingcsv May 4, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,7 @@ devops:
accessibility:
- maqs-accessibility/*
- maqs-accessibility/**/*

playwright:
- maqs-playwright/*
- maqs-playwright/**/*
18 changes: 10 additions & 8 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ jobs:
getVersion:
name: Get package version
runs-on: ubuntu-latest
needs: draftRelease
if: ${{ always() }}
outputs:
buildNumber: ${{ steps.ver.outputs.BUILD_NUMBER }}
Expand Down Expand Up @@ -109,14 +108,21 @@ jobs:
strategy:
fail-fast: false
matrix:
module-name: [ maqs-utilities, maqs-base, maqs-appium, maqs-selenium, maqs-webservices, maqs-cucumber, maqs-accessibility, maqs-database ]
module-name: [ maqs-utilities, maqs-base, maqs-appium, maqs-selenium, maqs-webservices, maqs-cucumber, maqs-accessibility, maqs-database, maqs-playwright ]
steps:
- name: Check if tests can be run
if: matrix.module-name == 'maqs-appium' && github.actor == 'dependabot[bot]'
run: |
echo Cannot run Appium tests when build was triggered by dependabot
exit 1
exit 1
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
if: matrix.module-name == 'maqs-playwright'
with:
node-version: '14.x'
- name: Install Playwright
if: matrix.module-name == 'maqs-playwright'
run: npx playwright install --with-deps
- name: Build and Start Unit Tests
id: builder
uses: ./.github/workflows/buildtest-action
Expand Down Expand Up @@ -148,7 +154,6 @@ jobs:

sonarcloud:
name: SonarCloud Analysis
if: github.actor != 'dependabot[bot]'
runs-on: ubuntu-latest
needs: [test-modules, getVersion]
env:
Expand Down Expand Up @@ -218,7 +223,4 @@ jobs:
- name: Label Pull Request
uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"



repo-token: "${{ secrets.GITHUB_TOKEN }}"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -525,3 +525,4 @@ MigrationBackup/
# Fody - auto-generated XML schema
FodyWeavers.xsd

*.zip
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,7 @@ public class AppiumTestObject extends BaseTestObject implements IAppiumTestObjec
*/
public AppiumTestObject(AppiumDriver<WebElement> appiumDriver, ILogger logger,
String fullyQualifiedTestName) {
super(logger, fullyQualifiedTestName);
this.getManagerStore().put(MobileDriverManager.class.getCanonicalName(),
new MobileDriverManager((() -> appiumDriver), this));
this(() -> appiumDriver, logger, fullyQualifiedTestName);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@
* A Dummy DummyBaseGenericStep class for testing
*/
public class DummyBaseGenericStep extends BaseGenericStep {

}
64 changes: 64 additions & 0 deletions maqs-playwright/config.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<GlobalMaqs>
<!-- Generic wait time in milliseconds - AKA how long do you wait for rechecking something -->
<WaitTime>100</WaitTime>

<!-- Generic time-out in milliseconds -->
<Timeout>10000</Timeout>

<!-- Do you want to create logs for your tests
<Log>YES</Log>
<Log>NO</Log>
<Log>OnFail</Log>-->
<Log>YES</Log>

<!--Logging Levels
<LogLevel>VERBOSE</LogLevel>
<LogLevel>INFORMATION</LogLevel>
<LogLevel>GENERIC</LogLevel>
<LogLevel>SUCCESS</LogLevel>
<LogLevel>WARNING</LogLevel>
<LogLevel>ERROR</LogLevel>-->
<LogLevel>VERBOSE</LogLevel>

<!-- Logging Types
<LogType>CONSOLE</LogType>
<LogType>TXT</LogType>
<LogType>HTML</LogType>-->
<LogType>TXT</LogType>

<!-- Log file path - Defaults to build location if no value is defined -->
<FileLoggerPath>./target/logs</FileLoggerPath>
</GlobalMaqs>
<PlaywrightMaqs>
<!--Default base web url-->
<WebBase>https://cognizantopensource.github.io/maqs-dotnet-templates/Static/Automation/</WebBase>

<!--Local browser settings
<add key="Browser" value="Chrome"/>
<add key="Browser" value="Chromium"/>
<add key="Browser" value="Firefox"/>
<add key="Browser" value="Edge"/>
<add key="Browser" value="Webkit"/>-->
<Browser>Chrome</Browser>
<Headless>YES</Headless>

<!--Playwright specific timeouts in milliseconds-->
<Timeout>20000</Timeout>
<CommandTimeout>200000</CommandTimeout>

<!--Browser Resize settings - The Default is 1280x720
<add key="BrowserSize" value="DEFAULT" />-->
<BrowserSize>DEFAULT</BrowserSize>

<!--Playwright specific logging options-->
<CaptureVideo>NO</CaptureVideo>
<CaptureScreenshots>NO</CaptureScreenshots>
<CaptureSnapshots>YES</CaptureSnapshots>

<!--Proxy settings-->
<UseProxy>No</UseProxy>
<ProxyAddress>http://localhost:8002</ProxyAddress>
</PlaywrightMaqs>
</configuration>
41 changes: 41 additions & 0 deletions maqs-playwright/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.cognizantsoftvision.maqs</groupId>
<artifactId>maqs-java</artifactId>
<version>${revision}</version>
</parent>

<groupId>com.cognizantsoftvision.maqs.playwright</groupId>
<artifactId>maqs-playwright</artifactId>
<name>MAQS Playwright Testing Module</name>
<version>${revision}</version>

<properties>
<playwright.version>1.21.0</playwright.version>
</properties>

<dependencies>
<dependency>
<groupId>com.cognizantsoftvision.maqs.base</groupId>
<artifactId>maqs-base</artifactId>
</dependency>
<dependency>
<groupId>com.cognizantsoftvision.maqs.utilities</groupId>
<artifactId>maqs-utilities</artifactId>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</dependency>
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>${playwright.version}</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
/*
* Copyright 2022 (C) Cognizant SoftVision, All rights Reserved
*/

package com.cognizantsoftvision.maqs.playwright;

import com.cognizantsoftvision.maqs.utilities.logging.ILogger;
import com.cognizantsoftvision.maqs.utilities.performance.IPerfTimerCollection;

/**
* The Base Playwright page model class.
*/
public abstract class BasePlaywrightPageModel {

/**
* Initializes a new instance of the BasePlaywrightPageModel class.
* @param testObject The Playwright test object
*/
protected BasePlaywrightPageModel(IPlaywrightTestObject testObject) {
this.setTestObject(testObject);
this.setPageDriver(testObject.getPageDriver());
}

/**
* Initializes a new instance of the BasePlaywrightPageModel class.
* @param testObject The Playwright test object
* @param customDriver Driver to use instead of the default test object related driver
*/
protected BasePlaywrightPageModel(IPlaywrightTestObject testObject, PageDriver customDriver) {
this.setTestObject(testObject);
this.setPageDriver(customDriver);
}

/**
* the playwright PageDriver from the test object.
*/
protected PageDriver pageDriver;

/**
* Gets the playwright PageDriver from the test object.
* @return the page driver
*/
public PageDriver getPageDriver() {
return this.pageDriver;
}

/**
* Sets the playwright PageDriver from the test object.
* @param driver the page driver to be set
*/
private void setPageDriver(PageDriver driver) {
this.pageDriver = driver;
}

/**
* The log from the test object.
*/
protected ILogger log;

/**
* Gets the log from the test object.
* @return the logger
*/
public ILogger getLogger() {
return this.getTestObject().getLogger();
}

/**
* The performance timer collection from the test object.
*/
protected IPerfTimerCollection perfTimerCollection;

/**
* Gets the performance timer collection from the test object.
* @return the perf timer collection
*/
public IPerfTimerCollection getPerfTimerCollection() {
return this.getTestObject().getPerfTimerCollection();
}

/**
* the Playwright test object.
*/
protected IPlaywrightTestObject testObject;

/**
* Gets the Playwright test object.
* @return the playwright test object interface
*/
public IPlaywrightTestObject getTestObject() {
return this.testObject;
}

/**
* Sets the Playwright test object.
* @param testObject the playwright test object
*/
protected void setTestObject(IPlaywrightTestObject testObject) {
this.testObject = testObject;
}

/**
* Override the playwright PageDriver.
* This allows you to use something other than the default tests
* object playwright PageDriver.
*
* @param pageDriver the new page driver
*/
public void overridePageDriver(PageDriver pageDriver) {
// Override driver
this.pageDriver = pageDriver;
}

/**
* Check if the page has been loaded.
* @return True if the page was loaded
*/
public abstract boolean isPageLoaded();
}
Loading