Паттерн Page Object — основа UI-автоматизации. Но при росте проекта классические пейджи часто превращаются в гигантские нечитаемые простыни по 1500 строк.
Разберём 3 частые ошибки из ревью студенческих заданий и способы их решения:
1️⃣ Ошибка: Страница-монолит (God Page)
В классе
MainPage описаны хэдер, корзина, каталог, фильтры и форма подписки на рассылку.Решение: переходить на компонентный подход (Component-based). Выделяем переиспользуемые виджеты в отдельные компоненты:
HeaderComponent, SidebarFilterComponent, PaginationComponent.2️⃣ Ошибка: Ассерты спрятаны внутри Page Object
Когда валидация зашита в метод страницы
loginPage.checkSuccess(), тест теряет прозрачность, а стек-трейс Allure не показывает точную строку упавшей проверки.Решение: страница отвечает за навигацию и возвращает данные, а ассерты всегда остаются в теле теста:
assertThat(profilePage.getUserName()).isEqualTo("Станислав");3️⃣ Ошибка: Утечка сырых селекторов наружу
Когда в теле тестового метода вызывается
page.locator("button.submit-btn-custom").click(), нарушается вся инкапсуляция.Решение: тест должен оперировать бизнес-действиями:
profilePage.submitForm().Модульная компонентная архитектура позволяет безболезненно пережить любой редизайн фронтенда.