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

Java · Основний курс · 31:44–40:28

JUnit 5 extension і lifecycle браузера

Щоб не створювати чотири Playwright instances у кожному тесті, демонструється JUnit 5 extension із `BeforeAllCallback` і `AfterAllCallback`. Він запускає Playwright і браузер перед тестами класу, надає `Page`, а після виконання закриває ресурси у зворотному порядку. Перша спроба взяти `Page` зі static field у тесті дає порожнє значення, бо static initialization відбувається раніше за callback extension. Виправлення — зберігати `Page` всередині extension і отримувати його методом уже після запуску lifecycle. На локальному headed-запуску Playwright контролює браузер так, що звичайний рух курсора не перехоплює тестові дії. Це протиставляється Selenium, де взаємодія користувача з тим самим браузером може змінити focus і зламати сценарій.

Playwright для Java: основи та поглиблення →

Java · Основний курс · 1:25:20–1:35:10

JUnit 5 extensions для driver lifecycle і login

Повторювані `@BeforeAll` і `@AfterAll` замінюються JUnit 5 extension. `WebDriverLifecycleExtension` реалізує `BeforeAllCallback` та `AfterAllCallback`: до тестів ініціалізує driver через provider, після тестів закриває його. Клас підключається через `@ExtendWith`, тому setup/teardown більше не дублюються в кожному test class. Окремий login extension виконує авторизацію перед тестовим класом. Такі розширення дозволяють комбінувати потрібні preconditions без спільного base class. Наприкінці до wrapper додається `findByText(...)`, який будує XPath і повертає той самий тип actions; тест запускається після виправлення синтаксису локатора.

Selenium: очікування та мікрообгортки →

Java · Сесії: AMA та PMP · 4:30–8:00

Власні AI-інструменти та цінність системного мислення

[Дивитися з 04:30](https://www.youtube.com/watch?v=jAl2Qf8Zlyg&t=270s). На прикладах диктування, transcription, Papuga, app switcher, browser extension та event platform показано, що невеликі власні tools уже реально створювати без глибокого знання кожного framework. Але здатність сформулювати problem, описати state і перевірити output важливіша за саму генерацію. Для professional work syntax knowledge частково дешевшає, тоді як system design, contracts і розуміння причин defect-ів стають ціннішими.

Vibe coding, склад команди та нова роль тестувальника →

Java · Сесії: AMA та PMP · 11:15–14:10

AI sidebar і робота з HTML-контекстом

Ще один експеримент — sidebar, який об’єднує кілька LLM interfaces і передає їм виділений на сторінці текст або HTML fragment. Для automation engineer це скорочує шлях від inspect element до prompt: можна вибрати DOM block і попросити запропонувати locator або page object. Це не замінює перевірку selector-а. Згенерований варіант треба оцінити за semantics, uniqueness і stability у реальному DOM, але інструмент прибирає кілька механічних copy/paste дій.

Корисні застосунки та їхнє призначення →

Java · Основний курс · 1:05:26–1:13:18

Tracing і готовий JUnit integration

Tracing записує кроки тесту, screenshots, console logs, network requests і додатковий контекст виконання. Ручна реалізація потребує browser context, запуску tracing перед тестом і збереження archive після нього. Замість власного extension демонструється експериментальна на момент відео JUnit integration з `@UsePlaywright`, яка інжектить `Page`. Для параметризації створюється клас, що реалізує `OptionsFactory`: через нього задаються headed/headless mode, base URL, tracing policy, browser launch options та інші параметри. За замовчуванням запускається Chromium build Playwright. Через browser channel можна обрати встановлений Google Chrome, а `slowMo` додає паузу між операціями, що корисно для демонстрації або візуального аналізу швидкого тесту.

Playwright для Java: основи та поглиблення →
Запитати в чаті про «extension» →