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
18 changes: 15 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,21 @@

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.10.0</version>
</dependency>

<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.4.0</version>
</dependency>

<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.8.0</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/utils/BasePage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package utils;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;

public class BasePage {

public BasePage(WebDriver driver){
PageFactory.initElements(driver, this);
}
}
22 changes: 22 additions & 0 deletions src/main/java/utils/BaseTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package utils;

import org.openqa.selenium.WebDriver;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeMethod;
import web_driver.WebDriverFactory;

public class BaseTest {

protected static WebDriver driver;

@BeforeMethod
public void setUp(){
WebDriverFactory factory = new WebDriverFactory();
driver = factory.getDriver();
}

@AfterSuite
public void wrapUp(){
driver.quit();
}
}
27 changes: 27 additions & 0 deletions src/main/java/web_driver/WebDriverFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package web_driver;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;

public class WebDriverFactory {

public WebDriver getDriver(){
System.setProperty("webdriver.edge.driver", "src/main/resources/msedgedriver.exe");
return new EdgeDriver(edgeOptions());
}

public EdgeOptions edgeOptions(){
EdgeOptions edgeOptions = new EdgeOptions();

edgeOptions.setHeadless(true);
edgeOptions.addArguments("--disable-gpu");
edgeOptions.addArguments("--window-size=1920,1200");
edgeOptions.addArguments("--ignore-certificate-errors");
edgeOptions.addArguments("--silent");
edgeOptions.addArguments("--start-maximized");

return edgeOptions;
}

}
21 changes: 21 additions & 0 deletions src/test/java/page/InventoryPage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package page;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindAll;
import org.openqa.selenium.support.FindBy;
import utils.BasePage;

import java.util.List;

public class InventoryPage extends BasePage {

@FindAll({
@FindBy(className = "inventory_item_description")
})
public List<WebElement> items;

public InventoryPage(WebDriver driver){
super(driver);
}
}
35 changes: 35 additions & 0 deletions src/test/java/page/LoginPage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package page;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindAll;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.FindBys;
import utils.BasePage;

public class LoginPage extends BasePage {

@FindBy(id = "user-name")
public WebElement loginInput;

@FindBys({
@FindBy(className = "form_group"),
@FindBy(id = "password")
})
public WebElement passwordInput;

@FindAll({
@FindBy(id = "gfrihgidfhnv"),
@FindBy(name = "foidsjofjvg"),
@FindBy(id = "login-button")
})
public WebElement loginButton;

public LoginPage(WebDriver driver){
super(driver);
driver.get("https://www.saucedemo.com/");
}



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

import org.testng.Assert;
import org.testng.annotations.Test;
import page.InventoryPage;
import page.LoginPage;
import utils.BaseTest;

public class LoginTest extends BaseTest {


@Test
public void loginTest(){
LoginPage loginPage = new LoginPage(driver);
loginPage.loginInput.sendKeys("standard_user");
loginPage.passwordInput.sendKeys("secret_sauce");
loginPage.loginButton.click();
InventoryPage inventoryPage = new InventoryPage(driver);
Assert.assertEquals(inventoryPage.items.size(), 6);
}
}