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

Python мануфактура · Програма курсу · 5:35–9:40

Розділення `conftest.py` через pytest plugins

Один `conftest.py` накопичив конфігурацію, запуск браузера, створення сторінки й app-specific fixtures. Код розділяється на модулі `config`, `playwright` та `app`, а кореневий `conftest.py` лише підключає їх через `pytest_plugins`. Технічний шар створює браузер і context; app-шар виконує login, перевіряє, що цільова сторінка завантажена, і зберігає state. Такий поділ залишає місце для Firefox або інших browser options без змішування з бізнесовими переходами.

2. Storage state, cookie manipulation, дебаг зникаючих елементів →

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

Мовні реалізації, runner і bindings

Playwright має APIs для TypeScript/JavaScript, Python, Java і .NET. Найповніша інтеграція навколо власного runner, fixtures і reporting доступна у Playwright Test для TypeScript/JavaScript; у Python за orchestration зазвичай відповідає pytest та його plugins. Selenium також має офіційні language bindings, які перетворюють API-виклики на WebDriver commands. Окремі команди підтримують Selenium project і browser vendors, тому version compatibility та відмінності bindings залишаються частиною експлуатації. Обидва інструменти — великі multi-language ecosystems. Вибір мови впливає не лише на синтаксис, а й на доступність runner integrations, fixtures, reporters, tracing і швидкість появи нових можливостей.

3. Selenium vs Playwright - яка різниця →

Java API-автоматизація · 35:00–55:00

Devices, screen sizes і long-term delivery cost

Покриття має враховувати різні screen sizes, OS versions і representative devices, але не перетворюватися на cartesian product кожного scenario з кожним device. Cross-platform допомагає швидко отримати market feedback, але native plugins і diverging teams збільшують maintenance cost. Тест strategy має врахувати цей ceiling заздалегідь.

Стратегія тестування мультиплатформних систем →

Python мануфактура · Програма курсу · 54:13–58:29

Завершення тесту й різниця між шаблонами

Після успішного запуску тест перейменовується відповідно до перевірюваної поведінки. Для ще одного повторюваного фрагмента створюється простий live template, який розгортається в `return self`. Це підтримує ланцюжкові виклики Page Object без повторного ручного набору. Плагіни не є основою цього процесу. У викладача встановлений Junie, але частіше для окремих задач використовується Claude Code. Головний приріст швидкості в уроці дають штатні засоби PyCharm: пошук у Settings, keymap, рефакторинги та шаблони. Параметри сторонніх плагінів варто змінювати лише під реальну потребу. Підсумкова модель трьох механізмів: - **postfix template** застосовується після виразу через крапку та обгортає або перетворює цей вираз; - **live template** розгортає за абревіатурою блок коду в позиції курсора; - **file template** створює новий файл із готовою структурою. На практиці postfix зручний для `locator` або `expect`, live template — для `page.pause()`, `get_by_role()` і повторюваних методів, а file template — для Page Object. Ці механізми доповнюють один одного й не потребують зовнішнього генератора.

Майструємо IDE під себе →
Запитати в чаті про «plugins» →