Загрузка данных


public class UserAccessFrontendTest {
 
    static TestUser sharedUser = new TestUser("ivan.petrov", "user123", "USER");
 
    static WebDriver driver;
 
    @BeforeAll
    static void setUpClass() {
        driver = new ChromeDriver();
        driver.get("https://frontend.example.com/login");
    }
 
    @AfterAll
    static void tearDownClass() {
        driver.quit();
    }
 
    @Test
    @Order(1)
    @DisplayName("Успешный логин, отображается дашборд")
    void testUserCanLogin() {
        driver.findElement(By.id("username")).sendKeys(sharedUser.getLogin());
        driver.findElement(By.id("password")).sendKeys(sharedUser.getPassword());
        driver.findElement(By.cssSelector(".btn-submit")).click();
 
        assertFalse(driver.findElement(By.cssSelector(".btn-submit")).isDisplayed());
    }
 
    @Test
    @Order(2)
    @DisplayName("Неуспешная попытка входа, пользователь блокируется после 3й попытки, вход запрещен")
    void testUserIsBlockedAfterFailedAttempts() {
        // 3 неуспешные попытки входа
        for (int i = 0; i < 3; i++) {
            driver.findElement(By.id("username")).sendKeys(sharedUser.getLogin());
            driver.findElement(By.id("password")).sendKeys("wrong_password");
            driver.findElement(By.cssSelector(".btn-submit")).click();
        }
 
        sharedUser.setBlocked(true);
 
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
 
        driver.findElement(By.cssSelector(".btn-submit")).click();
 
        WebElement errorMsg = driver.findElement(By.xpath("/html/body/div[2]/div[1]/div/span"));
        assertTrue(errorMsg.isDisplayed());
    }
 
    // Вспомогательный класс пользователя для тестов
    static class TestUser {
        private String login;
        private String password;
        private String role;
        private boolean blocked;
 
        public TestUser(String login, String password, String role) {
            this.login = login;
            this.password = password;
            this.role = role;
            this.blocked = false;
        }
 
        public String getLogin() { return login; }
        public String getPassword() { return password; }
        public String getRole() { return role; }
        public void setRole(String role) { this.role = role; }
        public boolean isBlocked() { return blocked; }
        public void setBlocked(boolean blocked) { this.blocked = blocked; }
    }
}