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

Design Patterns для автоматизаторів · 13:00–20:00

Auto-waiting і `slowMo`

Playwright перед дією автоматично перевіряє набір actionability conditions, а не обмежується document ready state. Це краще відповідає React/Angular interfaces, де сторінка формально завантажена раніше за dynamic content. Нульовий `slowMo` може виявитися занадто агресивним для application з race conditions, помилками promises або некоректними callbacks. Невелика затримка стабілізує flow, але такі падіння також корисно розглядати як можливі defects application, а не автоматично приховувати великим timeout.

Playwright Java, пишемо тести та робимо Selenide на мінімалках →

Design Patterns для автоматизаторів · 1:29:05–1:40:50

Loadable Component проти flaky UI-тестів

Після кожної дії потрібно підтверджувати її наслідок на поточній сторінці, а перед роботою з новою сторінкою чи компонентою — чекати, що вони готові. Це важливо для асинхронного UI: картка може вже відображатися, але stock або delivery methods ще завантажуються, тому ранній клік `addToCart` не дасть очікуваного результату. Спільний інтерфейс `Loadable` з методом `isLoaded` робить цю вимогу явною для pages і components без великого base class. `isLoaded` може містити кілька очікувань: видимість title, image, кнопки й залежних даних. Автор дозволяє такі очікування в Page Object, бо вони визначають готовність системи до наступної дії, і пропонує перевіряти на code review, що новий компонент реалізує контракт завантаження.

1. Патерни проєктування для UI тестів (перезапис) →
Запитати в чаті про «synchronization» →