/
koskv
/
TeamSync-Tests
Обзор
Документация
Войти
/
koskv
/
TeamSync-Tests
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/TeamSyncTest/pages/SideBarPage.java
178 строк
9 KB
Koskv
Add tests - and refactoring
29 окт 2025, 19:05
29 окт 2025, 19:05
a0d1a60
Код
Авторство
О чём код?
package TeamSyncTest.pages; import TeamSyncTest.pages.company.CompanyPage; import TeamSyncTest.pages.employee.EmployeePage; import TeamSyncTest.pages.employee_info.EmployeeInfoPage; import TeamSyncTest.pages.employee_project.EmployeeProjectPage; import TeamSyncTest.pages.employee_skills.EmployeeSkillsPage; import TeamSyncTest.pages.employee_tasks.EmployeeTasksPage; import TeamSyncTest.pages.positions.PositionsPage; import TeamSyncTest.pages.project.ProjectPage; import TeamSyncTest.pages.skills.SkillsPage; import TeamSyncTest.pages.tools.ToolsPage; import TeamSyncTest.pages.users.UsersListPage; import com.codeborne.selenide.SelenideElement; import io.qameta.allure.Allure; import io.qameta.allure.Step; import lombok.Data; import static com.codeborne.selenide.Condition.visible; import static com.codeborne.selenide.Selenide.$x; @Data public class SideBarPage { //private SelenideElement mainPageLink = $x("//a[normalize-space()='Главная']"); private final SelenideElement mainPageLink = $x("//aside//a[contains(., 'Главная')]"); private final SelenideElement employeeInfoPageLink = $x("//a[normalize-space()='Управление сотрудниками']"); private final SelenideElement myProfileLink = $x("//aside//a[contains(., 'Мой профиль')]"); private final SelenideElement employeeSkillsLink = $x("//aside//a[contains(., 'Оценка сотрудника')]"); private final SelenideElement employeeTasksLink = $x("//aside//a[contains(., 'Задачи сотрудников')]"); private final SelenideElement usersLink = $x("//aside//a[contains(., 'Управление пользователями')]"); // Выпадающий список - Справочники ----------------------------------------- private final SelenideElement dictionaryMenu = $x("//aside//a[contains(., 'Справочники')]"); private final SelenideElement employeePageLink = $x("//a[normalize-space()='Сотрудники']"); private final SelenideElement companyPageLink = $x("//a[normalize-space()='Компании']"); private final SelenideElement projectPageLink = $x("//a[normalize-space()='Проекты']"); private final SelenideElement employeeProjectPageLink = $x("//a[normalize-space()='Проекты сотрудников']"); private final SelenideElement positionsLink = $x("//a[normalize-space()='Список должностей']"); private final SelenideElement toolsLink = $x("//a[normalize-space()='Инструменты']"); private final SelenideElement skillsLink = $x("//a[normalize-space()='Скиллы']"); private final SelenideElement directoryLink = $x("//a[normalize-space()='Справочники']"); // справочник ссылка private final SelenideElement aboutSystemLink = $x("//a[normalize-space()='О системе']"); private final SelenideElement itDepartmentLink = $x("//a[normalize-space()='IT-отдел']"); // Методы открытия страниц в SideBar меню --------------------------------------------------------- public MainPage openMainPage() { mainPageLink.shouldBe(visible).click(); return new MainPage(); } @Step("Открываем страницу 'Ведение данных сотрудника'") public EmployeeInfoPage openEmployeeInfoPage() { Allure.step("Выполняем открытие страницы 'Ведение данных сотрудника'"); employeeInfoPageLink.shouldBe(visible).click(); return new EmployeeInfoPage(); } @Step("Открываем страницу 'Профиль сотрудников'") public MyProfilePage openMyProfilePage() { Allure.step("Проверяем открытие страницы Профиль сотрудника"); myProfileLink.shouldBe(visible).click(); return new MyProfilePage(); } @Step("Открываем страницу 'Оценка сотрудников'") public EmployeeSkillsPage openEmployeeSkillPage() { Allure.step("Проверяем открытие страницы Оценка сотрудников"); employeeSkillsLink.shouldBe(visible).click(); return new EmployeeSkillsPage(); } @Step("Открываем страницу 'Задачи сотрудников'") public EmployeeTasksPage openEmployeeTaskPage() { Allure.step("Проверяем открытие страницы Задачи сотрудников"); employeeTasksLink.shouldBe(visible).click(); return new EmployeeTasksPage(); } @Step("Открываем страницу 'Управление пользователями'") public UsersListPage openUsersListPage() { Allure.step("Проверяем открытие страницы Управление пользователями"); usersLink.shouldBe(visible).click(); return new UsersListPage(); } // SideBar menu: -------------------------------------------------- @Step("Открываем страницу 'Справочники - 'Сотрудники'") public EmployeePage openEmployeePage() { Allure.step("Проверяем открытие страницы Сотрудники"); dictionaryMenu.shouldBe(visible).click(); employeePageLink.shouldBe(visible).click(); return new EmployeePage(); } @Step("Открываем страницу 'Справочники - 'Компании'") public CompanyPage openCompanyPage() { Allure.step("Проверяем открытие страницы Компании"); dictionaryMenu.shouldBe(visible).click(); companyPageLink.shouldBe(visible).click(); return new CompanyPage(); } @Step("Открываем страницу 'Справочники - 'Проекты'") public ProjectPage openProjectPage() { Allure.step("Проверяем открытие страницы Проекты"); dictionaryMenu.shouldBe(visible).click(); projectPageLink.shouldBe(visible).click(); return new ProjectPage(); } @Step("Открываем страницу 'Справочники - 'Проекты сотрудников'") public EmployeeProjectPage openEmployeeProjectPage() { Allure.step("Проверяем открытие страницы Проекты сотрудников"); dictionaryMenu.shouldBe(visible).click(); employeeProjectPageLink.shouldBe(visible).click(); return new EmployeeProjectPage(); } @Step("Открываем страницу 'Справочники - 'Должности'") public PositionsPage openPositionPage() { Allure.step("Проверяем открытие страницы Должности"); dictionaryMenu.shouldBe(visible).click(); positionsLink.scrollIntoView(true).shouldBe(visible).click(); return new PositionsPage(); } @Step("Открываем страницу 'Справочники - 'Инструменты'") public ToolsPage openToolsPage() { Allure.step("Проверяем открытие страницы Инструменты"); dictionaryMenu.shouldBe(visible).click(); toolsLink.scrollIntoView(true).shouldBe(visible).click(); return new ToolsPage(); } @Step("Открываем страницу 'Справочники - 'Скиллы'") public SkillsPage openSkillsPage() { Allure.step("Проверяем открытие страницы Скиллы"); dictionaryMenu.click(); // селенид сам проскролит skillsLink.scrollIntoView(true).shouldBe(visible).click(); return new SkillsPage(); } //------ Общие пункты меню - для всех ------------------------------------------------ public AboutPage openAboutSystemPage() { aboutSystemLink.shouldBe(visible).click(); return new AboutPage(); } public ItDepartmentPage openItDepartmentPage() { itDepartmentLink.shouldBe(visible).click(); return new ItDepartmentPage(); } // общие методы ----------------------------------------------------------------- @Step("Проверяем видимость элементов меню SideBar") public boolean isUserMenuDisplayed() { return employeeInfoPageLink.isDisplayed() && employeeSkillsLink.isDisplayed() && employeeTasksLink.isDisplayed() && usersLink.isDisplayed() && dictionaryMenu.isDisplayed(); } }