diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
new file mode 100644
index 0000000..9aeaadc
--- /dev/null
+++ b/.github/workflows/maven.yml
@@ -0,0 +1,34 @@
+# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
+
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+
+name: Run Selenium Tests
+
+on:
+ push:
+ branches: [ "master" ]
+ pull_request:
+ branches: [ "master" ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up JDK 18
+ uses: actions/setup-java@v3
+ with:
+ java-version: '18'
+ distribution: 'temurin'
+ - name: Install Google Chrome
+ run: |
+ chmod +x ./scripts/InstallChrome.sh
+ ./scripts/InstallChrome.sh
+ - name: Run Tests with Maven
+ run: mvn test --file pom.xml
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index fdf3d31..121c7fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,11 +28,11 @@
7.7.0
test
-
+
- com.epam.healenium
- healenium-web
- 3.3.1
+ io.github.bonigarcia
+ webdrivermanager
+ 5.3.2
diff --git a/scripts/InstallChrome.sh b/scripts/InstallChrome.sh
new file mode 100644
index 0000000..0876ac0
--- /dev/null
+++ b/scripts/InstallChrome.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -ex
+wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
+sudo apt install ./google-chrome-stable_current_amd64.deb
\ No newline at end of file
diff --git a/src/test/java/pageobjects/swaglabs/HomePage.java b/src/test/java/pageobjects/swaglabs/HomePage.java
index b849201..60d6978 100644
--- a/src/test/java/pageobjects/swaglabs/HomePage.java
+++ b/src/test/java/pageobjects/swaglabs/HomePage.java
@@ -17,8 +17,8 @@ public void applyFilter(String value) {
driver.findElement(By.xpath("//select[@class='product_sort_container']/option[@value='" + value + "']")).click();
}
//get the filter value
- public String getAppliedFilter() {
- return driver.findElement(By.xpath("//div[@class='right_component']/span/span")).getText();
+ public Boolean chkAppliedFilter(String filter) {
+ return driver.findElement(By.xpath("//span[contains(text(),'"+filter+"')]"))!=null;
}
public String getPageHeading() {
diff --git a/src/test/java/tests/SwagLabs/BaseTest.java b/src/test/java/tests/SwagLabs/BaseTest.java
index aaeccfa..8135eed 100644
--- a/src/test/java/tests/SwagLabs/BaseTest.java
+++ b/src/test/java/tests/SwagLabs/BaseTest.java
@@ -1,5 +1,6 @@
package tests.SwagLabs;
+import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
@@ -19,10 +20,13 @@ public class BaseTest {
@BeforeClass
public void setupBeforeTest(){
+ WebDriverManager.chromedriver().setup();
this.options = new ChromeOptions();
this.options.addArguments("start-maximized");
+ this.options.addArguments("--no-sandbox");
+ this.options.addArguments("--disable-dev-shm-usage");
+ this.options.addArguments("--headless");
System.setProperty("webdriver.http.factory", "jdk-http-client");
- System.setProperty("webdriver.chrome.driver","C:\\Users\\mujtaba.afzal\\Documents\\ChromeDriver\\chromedriver.exe");
this.driver = new ChromeDriver(this.options);
this.properties = UtilsConfig.getProperties("SwagLabs");
this.XPATH = UtilsConfig.getProperties("xpath");
diff --git a/src/test/java/tests/SwagLabs/HomePageTests.java b/src/test/java/tests/SwagLabs/HomePageTests.java
index 533a792..ced3093 100644
--- a/src/test/java/tests/SwagLabs/HomePageTests.java
+++ b/src/test/java/tests/SwagLabs/HomePageTests.java
@@ -21,7 +21,7 @@ public void beforeEach(){
@Test(description = "Verify Filter should be applied successfully")
public void applyFilter(){
homePage.applyFilter(properties.getProperty("sort_filter"));
- Assert.assertEquals(homePage.getAppliedFilter(), properties.getProperty("sort_filter_text"));
+ Assert.assertTrue(homePage.chkAppliedFilter(properties.getProperty("sort_filter_text")));
}
@Test(description = "Verify product page should be opened successfully")
public void goToProductPage(){