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

Терміни, нюанси та джерела

Практика · 4:12

Сформулювати readiness contract

Для сторінки зі skeleton, product list і payment iframe вибери мінімальні сигнали, після яких користувач може виконати наступну бізнес-дію.
Кожен signal пов’язаний із реальною наступною дією.
Немає sleeps або перевірки кожного DOM element.
iframe control шукається через frame-aware locator.

Що має описувати isLoaded →

Python мануфактура · Сесії: AMA та PMP · 2:20–3:09

Динамічний контент і blocking loader

У динамічному UI HTML може вже існувати, але продукти, кошик або кнопка checkout ще не готові. Тест, який одразу клікає елемент, отримує flaky failure: дія сталася раніше, ніж сторінка могла її обробити. Надійний readiness contract чекає, що blocking preloader зник, skeleton замінився реальним контентом, а ключовий елемент став видимим або доступним для дії.

Що має описувати isLoaded →

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

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

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

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

Python мануфактура · Сесії: AMA та PMP · 4:12–5:35

Перевіряємо готовність, а не ідеальність анімації

Не потрібно перевіряти кожен кадр анімації. Достатньо спостережуваного переходу: loader зник, skeleton замінився карткою, назва продукту видима, критична дія доступна. Уповільнення мережі в DevTools допомагає знайти реальні проміжні стани й вибрати правильний сигнал. Підсумкове правило: `isLoaded` описує те, що користувач очікує побачити перед продовженням роботи, і те, без чого тест не може виконувати наступну дію стабільно.

Що має описувати isLoaded →
Запитати в чаті про «skeleton» →