Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 13 additions & 11 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,33 +20,35 @@
<target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<parallel>all</parallel>
<threadCount>10</threadCount>
</configuration>
</plugin>
</plugins>
</pluginManagement>

</build>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<!-- https://github.com/bonigarcia/webdrivermanager/ -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>4.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
<groupId>com.saucelabs</groupId>
<artifactId>sauce_bindings</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
Binary file removed resources/mac/chromedriver
Binary file not shown.
Binary file removed resources/windows/chromedriver.exe
Binary file not shown.
2 changes: 0 additions & 2 deletions selenium.java.iml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
package atda;
package pages;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.WebDriverWait;

public class BasePage {
public final WebDriver driver;
WebDriverWait wait;
protected WebDriverWait wait;


public BasePage(WebDriver driver) {
this.driver = driver;
wait = new WebDriverWait(driver, 10);
wait = new WebDriverWait(driver, 5);
}

public void open(String urlPart){
driver.navigate().to("https://www.saucedemo.com/" + urlPart);
}
}
13 changes: 13 additions & 0 deletions src/main/java/pages/InventoryComponent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package pages;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

public class InventoryComponent extends BasePage {
public InventoryComponent(WebDriver driver) {
super(driver);
}
public void addRandomItemToCart() {
driver.findElement(By.cssSelector("button.btn_primary.btn_inventory")).click();
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package atda;
package pages;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
Expand All @@ -10,10 +10,6 @@ public LoginPage(WebDriver driver) {
super(driver);
}

public void open() {
driver.get("http://www.saucedemo.com");
}

public boolean isLoaded() {
return wait.until(ExpectedConditions.presenceOfElementLocated(By.id("user-name"))).isDisplayed();
}
Expand All @@ -23,4 +19,8 @@ public void login(String userName, String password) {
driver.findElement(By.id("password")).sendKeys(password);
driver.findElement(By.className("btn_action")).submit();
}

public void open() {
open("");
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,25 @@
package atda;
package pages;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class ProductsPage extends BasePage{
public ShoppingCartComponent ShoppingCart;
public InventoryComponent Inventory;

public ProductsPage(WebDriver driver) {
super(driver);
ShoppingCart = new ShoppingCartComponent(driver);
Inventory = new InventoryComponent(driver);
}

public boolean isLoaded() {
return wait.until(
ExpectedConditions.presenceOfElementLocated(By.id("inventory_filter_container"))).isDisplayed();
}

public void open() {
open("inventory.html");
}
}
15 changes: 15 additions & 0 deletions src/main/java/pages/ShoppingCartComponent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package pages;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

public class ShoppingCartComponent extends BasePage {
public ShoppingCartComponent(WebDriver driver) {
super(driver);
}

public boolean hasItems(int numberOfItems) {
String numOfItemsInCart = driver.findElement(By.xpath("//*[@class='fa-layers-counter shopping_cart_badge']")).getText();
return Integer.parseInt(numOfItemsInCart) == numberOfItems;
}
}
37 changes: 37 additions & 0 deletions src/main/java/pages/ShoppingCartPage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package pages;

import org.openqa.selenium.*;
import org.openqa.selenium.support.ui.ExpectedConditions;

import java.util.List;

public class ShoppingCartPage extends BasePage {
public ShoppingCartPage(WebDriver driver) {
super(driver);
}

public int getItemCount() {
List<WebElement> cartItems;
try
{
cartItems =
wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.className("cart_item")));
}
catch (TimeoutException e)
{
return 0;
}
return cartItems.size();
}

public void open() {
open("cart.html");
}

public void injectItemIntoCart() {
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript("window.sessionStorage.setItem('session-username', 'standard-user')");
jsExecutor.executeScript("window.sessionStorage.setItem('cart-contents', '[1]')");
driver.navigate().refresh();
}
}
21 changes: 0 additions & 21 deletions src/test/java/HelloSelenium2Test.java

This file was deleted.

18 changes: 0 additions & 18 deletions src/test/java/HelloSeleniumTest.java

This file was deleted.

35 changes: 0 additions & 35 deletions src/test/java/advanced/tips/PageLoadTest.java

This file was deleted.

50 changes: 0 additions & 50 deletions src/test/java/atda/AcceptanceTestDrivenAutomationTest.java

This file was deleted.

23 changes: 23 additions & 0 deletions src/test/java/atda/BaseTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package atda;

import com.saucelabs.saucebindings.SauceSession;
import org.junit.After;
import org.junit.Before;
import org.openqa.selenium.WebDriver;

public class BaseTest {
WebDriver driver;
@Before
public void setup()
{
driver = getDriver();
}
@After
public void cleanup()
{
driver.quit();
}
private WebDriver getDriver() {
return new SauceSession().start();
}
}
28 changes: 28 additions & 0 deletions src/test/java/atda/LoginFeatureTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package atda;

import org.junit.Test;
import pages.LoginPage;
import pages.ProductsPage;

import static org.junit.Assert.assertTrue;

public class LoginFeatureTest extends BaseTest {
@Test
public void shouldOpen()
{
LoginPage loginPage = new LoginPage(driver);
loginPage.open();
assertTrue(loginPage.isLoaded());
}

@Test
public void shouldLogin()
{
LoginPage loginPage = new LoginPage(driver);
loginPage.open();
assertTrue(loginPage.isLoaded());

loginPage.login("standard_user", "secret_sauce");
assertTrue(new ProductsPage(driver).isLoaded());
}
}
Loading