Created
December 10, 2024 16:00
-
-
Save borodicht/2f3512d4aaf71fbea8c5cdad55e939a3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tests; | |
import org.openqa.selenium.WebDriver; | |
import org.openqa.selenium.chrome.ChromeDriver; | |
import org.openqa.selenium.chrome.ChromeOptions; | |
import org.testng.annotations.AfterMethod; | |
import org.testng.annotations.BeforeMethod; | |
import pages.LoginPage; | |
import pages.ProductsPage; | |
import java.time.Duration; | |
public class BaseTest { | |
WebDriver driver; | |
LoginPage loginPage; | |
ProductsPage productsPage; | |
@BeforeMethod | |
public void setup() { | |
ChromeOptions options = new ChromeOptions(); | |
driver = new ChromeDriver(options); | |
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); | |
loginPage = new LoginPage(driver); | |
productsPage = new ProductsPage(driver); | |
} | |
@AfterMethod(alwaysRun = true) | |
public void tearDown() { | |
driver.quit(); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package pages; | |
import org.openqa.selenium.By; | |
import org.openqa.selenium.WebDriver; | |
public class LoginPage { | |
WebDriver driver; | |
By userField = By.id("user-name"); | |
By passwordField = By.id("password"); | |
By loginButton = By.id("login-button"); | |
By errorMessage = By.cssSelector("[data-test=error]"); | |
public LoginPage(WebDriver driver) { | |
this.driver = driver; | |
} | |
public void open() { | |
driver.get("https://www.saucedemo.com/"); | |
} | |
public void login(String user, String password) { | |
driver.findElement(userField).sendKeys(user); | |
driver.findElement(passwordField).sendKeys(password); | |
driver.findElement(loginButton).click(); | |
} | |
public String getErrorMessage() { | |
return driver.findElement(errorMessage).getText(); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tests; | |
import org.openqa.selenium.By; | |
import org.slf4j.Logger; | |
import org.slf4j.LoggerFactory; | |
import org.testng.Assert; | |
import org.testng.annotations.Test; | |
import static org.testng.Assert.assertEquals; | |
public class LoginTest extends BaseTest { | |
@Test | |
public void loginPositiveTest() { | |
loginPage.open(); | |
loginPage.login("user-name", "secret_sauce"); | |
assertEquals( | |
productsPage.getTitle(), | |
"Products", | |
"Логин не выполнен"); | |
} | |
@Test | |
public void checkLoginWithWrongPassword() { | |
loginPage.open(); | |
loginPage.login("user-name", "123456"); | |
assertEquals( | |
loginPage.getErrorMessage(), | |
"Epic sadface: Username and password do not match any user in this service", | |
"Сообщение об ошибке не появилось"); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package pages; | |
import org.openqa.selenium.By; | |
import org.openqa.selenium.WebDriver; | |
public class ProductsPage { | |
WebDriver driver; | |
By title = By.cssSelector("[data-test=title]"); | |
public ProductsPage(WebDriver driver) { | |
this.driver = driver; | |
} | |
public String getTitle() { | |
return driver.findElement(title).getText(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment