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

Python мануфактура · Сесії: AMA та PMP · 2:32–9:04

`isLoaded` і реальний критерій готовності сторінки

Для кожного Page Object або повторно використовуваного компонента потрібна операція, яка доводить готовність до подальших дій. Вона локалізує причину падіння: замість випадкової помилки наступного кроку тест одразу повідомляє, що сторінка не завантажилася або потрібний блок не з’явився. Критерій залежить від rendering strategy. У client-side rendering можуть послідовно з’являтися skeleton, дані й зображення; інша сторінка приховує весь content до завершення кількох requests. Перевіряти треба мінімальний набір елементів, без яких сценарій не може продовжуватися, а не чекати кожної можливої деталі.

Неймінг та структура automation-проєкту →

Python мануфактура · Програма курсу · 4:00–8:00

Locator, `WebElement` або рядок

На Python-проєктах можна зустріти три підходи: зберігати locator tuple, лише CSS/XPath-рядок або вже знайдений `WebElement`. Рядок коротший, але не містить тип пошуку; `WebElement` зручний лише поки DOM-вузол не перерендерився; locator дає змогу безпечно виконувати повторний пошук. Якщо helper має приймати і locator, і `WebElement`, це можна відобразити union type та всередині визначити потрібну expected condition. Така гнучкість виправдана лише коли обидва представлення реально використовуються; для нового коду один locator-based контракт простіший. Wait helper отримує default timeout, але дозволяє локально передати довший для справді повільної операції. Page Object може застосовувати Loadable Component approach: сторінка вважається готовою лише після появи її ключових елементів, наприклад email і password inputs.

2. Selenium організація PageObject's та Очікувань →
Запитати в чаті про «loadable-component» →