Python мануфактураJavaDesign Patterns для автоматизаторів

Java · Основний курс · 49:58–1:01:50

`ProjectPage`, діагностика падіння та коректна відповідальність

Назва `ProjectPage` обирається після аналізу URL, HTML і функцій сторінки: вона охоплює не лише тест-кейси, а й налаштування, шаблони та користувачів проєкту. Методи `isLoaded` у `ProjectsPage` і `ProjectPage` роблять public, щоб тест міг явно перевіряти кожний перехід. Під час запуску тест падає через неперевірений селектор. Викладач знаходить перший релевантний рядок власного коду у stack trace, звіряє DOM і переносить перевірку повідомлення про успішний вхід до відповідальнішого місця. Характерний пошуковий елемент зберігається в полі Page Object і повторно використовується для перевірки завантаження, після чого тест знову проходить.

Page Objects: рефакторинг тестів →

Java · Основний курс · 43:10–49:58

Loadable Component і стабільні переходи

Для кожної сторінки створюється метод `isLoaded`, який очікує на характерний елемент через Selenide `shouldBe(Condition.visible)`. Цей підхід названо патерном Loadable Component. Перевірка завантаження має належати цільовій сторінці: `SignInPage` не повинен перевіряти внутрішні елементи наступної сторінки. Перехід можна додатково стабілізувати очікуванням, що елементи попередньої сторінки стали прихованими через `shouldBe(Condition.hidden)`. Таким чином тест підтверджує і зникнення попереднього стану, і завантаження наступного. Після вибору проєкту створюється окремий `ProjectPage`, назву якого виводять із URL та структури продукту.

Page Objects: рефакторинг тестів →

Java · Основний курс · 1:10:00–1:16:56

Стабілізація перевірок і підготовка коду до коміту

Перед статичним читанням тексту додається очікування видимості елемента, щоб уникнути перевірки ще не завантаженого стану. Page Object може містити очікування того, що користувач бачить на сторінці, тоді як тест зберігає бізнес-порівняння отриманого значення. Після рефакторингу сценарій читається як послідовність дій через `SignInPage`, `ProjectsPage` і `ProjectPage`, а реалізація рознесена між відповідними класами. Наприкінці показано `Reformat Code` та `Optimize Imports`: IDE прибирає зайві імпорти й упорядковує статичні та нестатичні поля й методи. Автоматичне форматування перед комітом не замінює запуск тестів, бо зміна порядку ініціалізації може зламати код. Звичка — очистити імпорти, відформатувати код і перевірити його до коміту.

Page Objects: рефакторинг тестів →
Запитати в чаті про «ProjectPage» →