From 2afc675595bbcd5de2f44f27555c9f74c860c6d4 Mon Sep 17 00:00:00 2001 From: Nadia Roman Date: Fri, 23 Aug 2024 10:14:27 +0300 Subject: [PATCH] changes after review --- .../driver/managment/DriverManager.java | 15 ++++------ src/main/java/com/saucedemo/models/User.java | 8 +++++ .../java/com/saucedemo/pages/LoginPage.java | 29 +++++-------------- .../java/com/saucedemo/tests/LoginTest.java | 13 ++++----- 4 files changed, 27 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/saucedemo/driver/managment/DriverManager.java b/src/main/java/com/saucedemo/driver/managment/DriverManager.java index a489909..0f79a02 100644 --- a/src/main/java/com/saucedemo/driver/managment/DriverManager.java +++ b/src/main/java/com/saucedemo/driver/managment/DriverManager.java @@ -14,10 +14,6 @@ private DriverManager() {} public static WebDriver getDriver(Browser browser) { if (driver == null) { switch (browser) { - case CHROME: - WebDriverManager.chromedriver().setup(); - driver = new ChromeDriver(); - break; case FIREBOX: WebDriverManager.firefoxdriver().setup(); driver = new FirefoxDriver(); @@ -26,15 +22,14 @@ public static WebDriver getDriver(Browser browser) { WebDriverManager.edgedriver().setup(); driver = new EdgeDriver(); break; + case CHROME: + default: + WebDriverManager.chromedriver().setup(); + driver = new ChromeDriver(); + break; } } return driver; } - public static void quitDriver() { - if (driver != null) { - driver.quit(); - driver = null; - } - } } diff --git a/src/main/java/com/saucedemo/models/User.java b/src/main/java/com/saucedemo/models/User.java index bcc717a..b77cc5a 100644 --- a/src/main/java/com/saucedemo/models/User.java +++ b/src/main/java/com/saucedemo/models/User.java @@ -28,4 +28,12 @@ public String getPassword() { public void setPassword(String password) { this.password = password; } + + @Override + public String toString() { + return "User{" + + "username='" + username + '\'' + + ", password='" + password + '\'' + + '}'; + } } diff --git a/src/main/java/com/saucedemo/pages/LoginPage.java b/src/main/java/com/saucedemo/pages/LoginPage.java index 44e1ff8..de497d5 100644 --- a/src/main/java/com/saucedemo/pages/LoginPage.java +++ b/src/main/java/com/saucedemo/pages/LoginPage.java @@ -2,21 +2,18 @@ import com.saucedemo.models.User; import com.saucedemo.tests.LoginTest; +import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; -import org.openqa.selenium.support.ui.ExpectedConditions; -import org.openqa.selenium.support.ui.WebDriverWait; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.time.Duration; -import java.util.List; - public class LoginPage { private final WebDriver driver; private static final Logger logger = LoggerFactory.getLogger(LoginTest.class); + private static final String LINK = "https://www.saucedemo.com/"; @FindBy(xpath = "//input[@data-test='username']") private WebElement usernameArea; @@ -28,7 +25,7 @@ public class LoginPage { private WebElement loginButton; @FindBy(xpath = "//*[@data-test='error']") - private List errorMassage; + private WebElement errorMessage; public LoginPage(WebDriver driver) { this.driver = driver; @@ -46,9 +43,6 @@ public LoginPage enterLoginFields(User user) { public LoginPage enterUsername(String username) { -// WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); -// wait.until(ExpectedConditions.visibilityOf(usernameArea)); - if(username != null) { usernameArea.sendKeys(username); logger.debug("Entered username: {}", username); @@ -66,10 +60,7 @@ public LoginPage enterUsername(String username) { public LoginPage enterPassword(String password) { -// WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); -// wait.until(ExpectedConditions.visibilityOf(passwordArea)); - - if(password != null) { + if(password != null) { passwordArea.sendKeys(password); logger.debug("Entered password: {}", password); } else { @@ -86,13 +77,10 @@ public LoginPage enterPassword(String password) { public LoginButtonClickResult clickLoginButton() { -// WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); -// wait.until(ExpectedConditions.visibilityOf(loginButton)); - loginButton.click(); logger.info("Clicked login button"); - if(driver.getCurrentUrl().equals("https://www.saucedemo.com/")) { + if(driver.getCurrentUrl().equals(LINK)) { return new LoginButtonClickResult(this); } else { return new LoginButtonClickResult(new ShopPage(driver)); @@ -101,13 +89,12 @@ public LoginButtonClickResult clickLoginButton() { public String getErrorMassageText() { - if(!errorMassage.isEmpty()) { - String fullText = errorMassage.get(0).getText(); + try { + String fullText = errorMessage.getText(); return fullText.substring(14); - } else { + } catch (TimeoutException e) { return ""; } } - } diff --git a/src/main/java/com/saucedemo/tests/LoginTest.java b/src/main/java/com/saucedemo/tests/LoginTest.java index 8a03da4..fdd9c47 100644 --- a/src/main/java/com/saucedemo/tests/LoginTest.java +++ b/src/main/java/com/saucedemo/tests/LoginTest.java @@ -5,18 +5,19 @@ import com.saucedemo.models.User; import com.saucedemo.pages.LoginButtonClickResult; import com.saucedemo.pages.LoginPage; -import java.util.stream.Stream; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; import org.openqa.selenium.WebDriver; +import java.util.stream.Stream; + import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.notNullValue; @TestInstance(TestInstance.Lifecycle.PER_METHOD) public class LoginTest { @@ -68,10 +69,9 @@ public void testLoginWithEmptyPassword(User user) { @ParameterizedTest @MethodSource("DataProviderForLogin") - public void testLoginWithCorrectInput() { - User correctUser = new User("standard_user", "secret_sauce"); + public void testLoginWithCorrectInput(User user) { LoginPage loginPage = new LoginPage(getDriver()); - loginPage.enterLoginFields(correctUser); + loginPage.enterLoginFields(user); LoginButtonClickResult loginButtonClickResult = loginPage.clickLoginButton(); @@ -92,7 +92,6 @@ public void setDown() { static Stream DataProviderForLogin() { return Stream.of( Arguments.of(new User("standard_user", "secret_sauce")), - Arguments.of(new User("locked_out_user", "secret_sauce")), Arguments.of(new User("problem_user", "secret_sauce")), Arguments.of(new User("performance_glitch_user", "secret_sauce")), Arguments.of(new User("error_user", "secret_sauce")),