diff --git a/README.md b/README.md
index 931b60dd..ac45d5da 100644
--- a/README.md
+++ b/README.md
@@ -27,12 +27,12 @@ The Selenium tests are run on different platforms like on-prem, docker and Brows
Maven:
```sh
- mvn install
+ mvn install -DskipTests
```
Gradle:
```sh
- gradle build
+ gradle build -x test
```
## About the tests in this repository
diff --git a/build.gradle b/build.gradle
index 0773645a..b95dc449 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,13 +2,13 @@
* This file was generated by the Gradle 'init' task.
*/
+/* groovylint-disable-next-line CompileStatic */
plugins {
id 'java'
id 'maven-publish'
}
repositories {
- mavenLocal()
mavenCentral()
google()
}
@@ -19,7 +19,6 @@ dependencies {
testImplementation 'com.browserstack:browserstack-local-java:1.0.6'
testImplementation 'org.apache.commons:commons-lang3:3.11'
testImplementation 'org.slf4j:slf4j-api:1.7.30'
- testImplementation 'ch.qos.logback:logback-classic:1.2.3'
testImplementation 'org.testng:testng:7.4.0'
testImplementation 'io.cucumber:cucumber-java:6.10.4'
testImplementation 'io.cucumber:cucumber-core:6.10.4'
@@ -27,17 +26,14 @@ dependencies {
testImplementation 'io.cucumber:cucumber-testng:6.10.4'
testImplementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.2'
testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.12.2'
+ testImplementation 'com.browserstack:webdriver-framework-testng:0.0.1'
}
-group = 'com.browserstack'
-version = '0.0.1-SNAPSHOT'
-description = 'browserstack-examples-cucumber-testng'
-java.sourceCompatibility = JavaVersion.VERSION_1_8
-
tasks.named('test') {
- systemProperty "cucumber.filter.tags", System.getProperty("cucumber.filter.tags")
- systemProperty "dataproviderthreadcount", System.getProperty("num.parallels")
- useTestNG() {
+ /* groovylint-disable-next-line DuplicateStringLiteral */
+ systemProperty 'cucumber.filter.tags', System.getProperty('cucumber.filter.tags')
+ systemProperty 'dataproviderthreadcount', System.getProperty('num.parallels')
+ useTestNG {
suites 'src/test/resources/conf/testng.xml'
parallel = 'methods'
}
diff --git a/pom.xml b/pom.xml
index af257611..a582d389 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,13 +14,11 @@
2.22.2
3.141.59
1.0.6
- 1.1.1
3.11
2.12.0
2.10.0
1.7.30
6.9.1
- 1.2.3
7.4.0
6.10.4
2.12.2
@@ -56,12 +54,6 @@
test
-
- ch.qos.logback
- logback-classic
- ${logback.version}
- test
-
org.testng
diff --git a/settings.gradle b/settings.gradle
index 956c60bf..aba25e1f 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,4 @@
+/* groovylint-disable CompileStatic */
/*
* This file was generated by the Gradle 'init' task.
*/
diff --git a/src/test/java/com/browserstack/examples/stepdefs/AbstractBaseSteps.java b/src/test/java/com/browserstack/examples/stepdefs/AbstractBaseSteps.java
index a294d9d6..78d79088 100644
--- a/src/test/java/com/browserstack/examples/stepdefs/AbstractBaseSteps.java
+++ b/src/test/java/com/browserstack/examples/stepdefs/AbstractBaseSteps.java
@@ -5,11 +5,6 @@
import com.browserstack.examples.tests.RunWebDriverCucumberTests;
import com.browserstack.webdriver.core.WebDriverFactory;
-/**
- * Created with IntelliJ IDEA.
- *
- * @author Anirudha Khanna
- */
public abstract class AbstractBaseSteps {
private WebDriver webDriver;
diff --git a/src/test/java/com/browserstack/examples/stepdefs/HomePageSteps.java b/src/test/java/com/browserstack/examples/stepdefs/HomePageSteps.java
index 9274025b..3c446027 100644
--- a/src/test/java/com/browserstack/examples/stepdefs/HomePageSteps.java
+++ b/src/test/java/com/browserstack/examples/stepdefs/HomePageSteps.java
@@ -1,7 +1,5 @@
package com.browserstack.examples.stepdefs;
-
-
import java.util.List;
import java.util.stream.Collectors;
import org.openqa.selenium.By;
@@ -14,15 +12,16 @@
import io.cucumber.java.en.And;
import io.cucumber.java.en.Then;
-
public class HomePageSteps extends AbstractBaseSteps {
WebDriverWait wait;
+
@And("I add two products to cart")
public void iAddProductsToCart() {
WebDriverWait wait = new WebDriverWait(getWebDriver(), 10);
Utility.waitForJSLoad(getWebDriver());
- wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#\\31 > .shelf-item__buy-btn"))).click();
+ wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#\\31 > .shelf-item__buy-btn")))
+ .click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.float-cart__close-btn"))).click();
getWebDriver().findElement(By.cssSelector("#\\32 > .shelf-item__buy-btn")).click();
Utility.waitForJSLoad(getWebDriver());
@@ -38,8 +37,7 @@ public void iPressTheAppleVendorFilter() {
try {
getWebDriver().findElement(By.cssSelector(".filters-available-size:nth-child(2) .checkmark")).click();
Utility.waitForJSLoad(getWebDriver());
- }
- catch (NoSuchElementException e) {
+ } catch (NoSuchElementException e) {
throw new AssertionError();
}
}
@@ -55,7 +53,8 @@ public void iShouldUserLoggedIn(String user) {
WebDriverWait wait = new WebDriverWait(getWebDriver(), 10);
Utility.waitForJSLoad(getWebDriver());
try {
- String loggedInUser = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".username"))).getText();
+ String loggedInUser = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".username")))
+ .getText();
Assert.assertEquals(user, loggedInUser);
} catch (NoSuchElementException e) {
throw new AssertionError(user + " is not logged in");
@@ -69,7 +68,7 @@ public void iShouldSeeNoImageLoaded() {
String src = "";
try {
src = getWebDriver().findElement(By.cssSelector("img[alt='iPhone 12']")).getAttribute("src");
- Assert.assertEquals(src.isEmpty(),false);
+ Assert.assertEquals(src.isEmpty(), false);
} catch (NoSuchElementException e) {
throw new AssertionError("No Images are loaded");
}
@@ -80,8 +79,10 @@ public void iShouldSeeItemsInTheList(int productCount) {
try {
WebDriverWait webDriverWait = new WebDriverWait(getWebDriver(), 10);
Utility.waitForJSLoad(getWebDriver());
- webDriverWait.until(ExpectedConditions.visibilityOf(getWebDriver().findElement(By.cssSelector(".shelf-item__title"))));
- List values = getWebDriver().findElements(By.cssSelector(".shelf-item__title")).stream().map(WebElement::getText).collect(Collectors.toList());
+ webDriverWait.until(
+ ExpectedConditions.visibilityOf(getWebDriver().findElement(By.cssSelector(".shelf-item__title"))));
+ List values = getWebDriver().findElements(By.cssSelector(".shelf-item__title")).stream()
+ .map(WebElement::getText).collect(Collectors.toList());
Assert.assertEquals(productCount, values.size());
} catch (NoSuchElementException e) {
throw new AssertionError("Error in page load");
@@ -90,12 +91,10 @@ public void iShouldSeeItemsInTheList(int productCount) {
@Then("I should see prices in ascending order")
public void iShouldSeePricesInAscendingOrder() {
- WebDriverWait wait = new WebDriverWait(getWebDriver(), 10);
try {
- WebDriverWait webDriverWait = new WebDriverWait(getWebDriver(), 10);
Utility.waitForJSLoad(getWebDriver());
- // webDriverWait.until(ExpectedConditions.visibilityOf(ThreadLocalDriver.getWebDriver().findElement(By.cssSelector(".shelf-item__price > div.val > b"))));
- List priceWebElement = getWebDriver().findElements(By.cssSelector(".shelf-item__price > div.val > b"));
+ List priceWebElement = getWebDriver()
+ .findElements(By.cssSelector(".shelf-item__price > div.val > b"));
Utility.waitForJSLoad(getWebDriver());
Assert.assertTrue(Utility.isAscendingOrder(priceWebElement, priceWebElement.size()));
} catch (NoSuchElementException e) {
diff --git a/src/test/java/com/browserstack/examples/tests/RunWebDriverCucumberTests.java b/src/test/java/com/browserstack/examples/tests/RunWebDriverCucumberTests.java
index f944df86..6d277853 100644
--- a/src/test/java/com/browserstack/examples/tests/RunWebDriverCucumberTests.java
+++ b/src/test/java/com/browserstack/examples/tests/RunWebDriverCucumberTests.java
@@ -16,11 +16,6 @@
import io.cucumber.testng.PickleWrapper;
import io.cucumber.testng.TestNGCucumberRunner;
-/**
- * Created with IntelliJ IDEA.
- *
- * @author Anirudha Khanna
- */
@CucumberOptions(
features = "classpath:features",
glue = "com.browserstack.examples.stepdefs",
diff --git a/src/test/resources/capabilities-single.yml b/src/test/resources/capabilities-single.yml
index b60af989..507cbae5 100644
--- a/src/test/resources/capabilities-single.yml
+++ b/src/test/resources/capabilities-single.yml
@@ -15,7 +15,6 @@ cloudDriver:
browserstack.debug: true
browserstack.networkLogs: true
browserstack.console: debug
-# browserstack.idleTimeout: 300
platforms:
- name: Win10_Chrome_Latest-1
os: Windows
diff --git a/src/test/resources/capabilities.yml b/src/test/resources/capabilities.yml
index ec4cc03c..7ec82ad4 100644
--- a/src/test/resources/capabilities.yml
+++ b/src/test/resources/capabilities.yml
@@ -15,7 +15,6 @@ cloudDriver:
browserstack.debug: true
browserstack.networkLogs: true
browserstack.console: debug
-# browserstack.idleTimeout: 300
platforms:
- name: Win10_IE11
os: Windows
@@ -39,18 +38,8 @@ cloudDriver:
browser_version: latest
capabilities:
browserstack.selenium_version: 3.141.59
-# - name: OSX_BigSur_Chrome_Latest
-# os: OS X
-# os_version: Catalina
-# browser: Safari
-# browser_version: '13.0'
- name: Android_Samsung Galaxy S21_11.0
os: Android
os_version: '11.0'
device: Samsung Galaxy S21
real_mobile: true
-# - name: iOS_iPhone XS_13.0
-# os: iPhone
-# os_version: '13.0'
-# device: iPhone XS
-# real_mobile: true