/
koskv
/
TeamSync-Tests
Обзор
Документация
Войти
/
koskv
/
TeamSync-Tests
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/TeamSyncTest/pages/HeaderPage.java
120 строк
5 KB
Koskv
Настройка запуска UI и API тестов отдельно
28 окт 2025, 23:57
28 окт 2025, 23:57
46e2d66
Код
Авторство
О чём код?
package TeamSyncTest.pages; import TeamSyncTest.pages.login.LoginModal; import com.codeborne.selenide.SelenideElement; import io.qameta.allure.Allure; import io.qameta.allure.Step; import lombok.Data; import static com.codeborne.selenide.Condition.text; import static com.codeborne.selenide.Condition.visible; import static com.codeborne.selenide.Selectors.byXpath; import static com.codeborne.selenide.Selenide.*; @Data public class HeaderPage { private SelenideElement logo = $x("//h1[normalize-space()='TeamSync']"); private SelenideElement loginButton = $x("//button[normalize-space()='Вход']"); private SelenideElement exitButton = $x("//button[normalize-space()='Выход']"); private SelenideElement greatingUsers = $x("//*[@data-test='current-username']"); private SelenideElement homeLink = $x("//*[normalize-space()='Home']"); private SelenideElement successLoginAlert = $x("//*[@id=\"alerts-container\"]/div/div/span"); public HeaderPage() { //проверка наличия элементов в header checkHeaderElements(); } @Step("Проверить наличие основных элементов в хедере") public HeaderPage checkHeaderElements() { Allure.step("Проверяем отображение логотипа и кнопки входа в хедере"); logo.shouldBe(visible); return this; } @Step("Открыть модальное окно авторизации") public LoginModal login(){ Allure.step("Кликаем на кнопку 'Вход' в хедере"); loginButton.click(); return new LoginModal(); } @Step("Выполнить разлогирование") public HeaderPage exit(){ Allure.step("Кликаем на кнопку 'Выход' в хедере"); exitButton.shouldBe(visible).click(); return this; } @Step("Открытие главной страницы - клик на 'Home' link") public MainPage openMainPage(){ homeLink.shouldBe(visible).click(); return new MainPage(); } @Step("Проверить успешное отображение алерта авторизации") public HeaderPage checkSuccessLoginAlert() { Allure.step("Проверяем отображение сообщения об успешной авторизации"); successLoginAlert.shouldBe(visible); return this; } @Step("Получить текст сообщения об успешной авторизации") public String getSuccessLoginAlertText() { String alertText = successLoginAlert.getText(); Allure.addAttachment("Текст алерта успешной авторизации", alertText); return alertText; } @Step("Проверить приветствие пользователя: ожидаемое имя '{expectedUsername}'") public HeaderPage checkUserGreeting(String expectedUsername) { Allure.step("Проверяем отображение приветствия для пользователя: " + expectedUsername); greatingUsers.shouldBe(visible) .shouldHave(text(expectedUsername)); return this; } @Step("Получить текст приветствия пользователя") public String getUserGreetingText() { String greetingText = greatingUsers.getText(); Allure.addAttachment("Текст приветствия пользователя", greetingText); return greetingText; } @Step("Проверить, что пользователь авторизован") public HeaderPage checkUserIsLoggedIn() { Allure.step("Проверяем признаки авторизованного пользователя"); exitButton.shouldBe(visible); greatingUsers.shouldBe(visible); loginButton.shouldNotBe(visible); return this; } @Step("Проверить, что пользователь не авторизован") public HeaderPage checkUserIsLoggedOut() { Allure.step("Проверяем признаки неавторизованного пользователя"); loginButton.shouldBe(visible); exitButton.shouldNotBe(visible); greatingUsers.shouldNotBe(visible); return this; } @Step("Нажать на логотип TeamSync") public HeaderPage clickLogo() { Allure.step("Кликаем на логотип TeamSync для перехода на главную страницу"); logo.click(); return this; } @Step("Проверить отображение логотипа") public HeaderPage checkLogoIsDisplayed() { logo.shouldBe(visible); return this; } }