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

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

Що змінилося після запису · 58:10

Поточний фактчек Playwright Test Agents

Поточна офіційна документація описує planner, generator і healer для Node.js Playwright Test у TypeScript-first workflow. Playwright Test також підтримує JavaScript, а Python docs мають окремий Node-based playwright-cli для coding agents; це не той самий planner/generator/healer workflow.

Зміну після запису не встановлено: Playwright Test Agents з’явилися у v1.56 до сесії 2026-01-07; current docs checked 2026-07-31.

Оцінка корисності у відео залишається авторською думкою, але твердження про можливості інструмента треба показувати поруч із актуальним official state.

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

Що змінилося після запису · 0:00

Branded Chrome і Edge доступні як Chromium channels

Урок описує пряме Playwright coverage через Chromium, Firefox і WebKit та відносить Edge/Opera до ширшої Selenium matrix.

Поточна Playwright Python documentation перелічує Google Chrome і Microsoft Edge channels. Це branded Chromium channels, а не додаткові browser engines. Patched Firefox не є stock branded Firefox, а Playwright WebKit не є branded Safari.

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

Що змінилося після запису · 1:30

Що змінилося після запису

Урок показує macOS-specific workaround, щоб не розпакувати внутрішній Playwright trace archive.

Playwright офіційно документує цілий trace.zip як input для playwright show-trace, але не документує поведінку macOS Archive Utility. macOS workaround залишається авторським evidence, а не універсальним platform rule.

Офіційний contract перевірено 2026-07-31; дата macOS behavior не встановлена.

3. Фікс трейсів на СІ →

Що змінилося після запису · 10:30

Що змінилося після запису

У Python experiment інтерактивний Playwright trace attachment у generated report не запрацював; окремий trace artifact залишився fallback.

Allure renderer документує media type application/vnd.allure.playwright-trace і різну поведінку viewer в Allure 2/3. Automatic trace detection офіційно описане для JS/TS allure-playwright, не для ланцюжка pytest-playwright → allure-pytest.

Документацію перевірено 2026-07-31; дата появи media type не встановлена.

4. Allure репорт, основи та інтеграція в CI →

Що змінилося після запису · 5:30

Playwright setup залежить від версії

У відео рекомендовано API preconditions, reused authenticated state та незалежні test data.

Поточна документація Playwright рекомендує не комітити auth state і використовувати окремий account на parallel worker, якщо tests змінюють shared server-side state. Конкретні fixtures, directories та worker APIs слід звіряти з версією Playwright у проєкті.

Практика курсу на YOY, домашні завдання та формат ПМП →

Python мануфактура · Програма курсу · 13:12–16:33

Встановлення браузерів Playwright

Після першого запуску тест може впасти, якщо встановлено Python-пакет Playwright, але ще не завантажено сумісні браузери. Їх потрібно встановити окремо: ```bash playwright install ``` Якщо команда Playwright недоступна напряму, її можна запустити як Python-модуль: ```bash python -m playwright install ``` Playwright завантажує сумісні версії Chromium, Firefox і WebKit. Chromium є окремим браузерним рушієм; для перевірки саме встановленого Google Chrome його потрібно явно обрати в конфігурації.

2. Перший автотест на Python з Playwright →

Python мануфактура · Сесії: AMA та PMP · 0:00–2:36

Пакет Playwright і браузери — різні артефакти

`pip install` за `requirements.txt` встановлює Python-бібліотеку Playwright, але не гарантовано завантажує сумісні браузерні binaries. Тому після клонування проєкту окремо запускають `playwright install` або, для меншого завантаження, команду з потрібним браузером, наприклад `playwright install chromium`. Playwright керує власними сумісними збірками Chromium, Firefox і WebKit. Якщо потрібної збірки немає у його cache, запуск завершується помилкою навіть тоді, коли сам Python-пакет уже встановлений.

Навіщо встановлювати Playwright-браузери, як часто та чому треба оновлювати бібліотеки →

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

Як Playwright керує браузером

Playwright підтримує тривалий двосторонній канал із browser process і через browser-specific protocol передає команди click, fill, navigation та читання стану. Locator actions мають auto-waiting: перед дією Playwright перевіряє релевантні actionability conditions — наприклад, видимість, стабільність, можливість отримати events і editable state. Це дозволяє тесту формулювати намір «виконай click для цього locator», а orchestration layer бере на себе очікування готовності елемента в межах timeout. Auto-waiting не усуває потребу в assertion: після дії все одно треба перевірити очікуваний результат. Основні browser engines Playwright — Chromium, Firefox і WebKit. WebKit наближає поведінку Safari, але не є повною копією всіх Safari/macOS/iOS інтеграцій. Branded Chrome або Edge можуть запускатися як Chromium channels, проте повну browser matrix потрібно визначати з реальної product analytics і support policy.

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

Python мануфактура · Програма курсу · 13:10–15:35

Офіційний Playwright Codegen

Playwright має власний Test Generator, який запускається з термінала: ```bash playwright codegen https://testomat.io ``` Відкриваються окремий браузер і вікно Playwright Inspector. У меню target потрібно обрати Python і pytest. Після цього навігація, заповнення полів та кліки записуються як Python-код. Офіційний Codegen стабільніший за перевірені сторонні extensions, але його локатори теж не завжди оптимальні. Наприклад, вони можуть бути задовгими або не враховувати доменні домовленості про `data-testid`.

4. Playwright плагіни та codegen →

Python мануфактура · Сесії: AMA та PMP · 19:47–23:40

Selenium, Playwright і реальна цінність тесту

У Python-програмі Selenium розглядається, але основний інструмент — Playwright. Головна навичка автоматизатора не прив’язана до API конкретної бібліотеки: потрібно розуміти сторінку й API продукту, будувати тестовані сценарії та домовлятися з розробниками про стабільні селектори й testability. Playwright надає більше готових можливостей для console, network mocking, traces і компонентних перевірок. У Selenium подібні задачі історично були складнішими, хоча сучасні протоколи браузера розширили його можливості. TypeScript-версія Playwright має зручний `playwright.config`, але це не робить інші мови неповноцінними: конфігурацію, паралельність, sharding і репорти можна організувати іншими механізмами. Водночас async/Promise-модель TypeScript іноді додає складності, яка не пов’язана безпосередньо з тестовою задачею.

Як працює проєктний білдер, ізоляція залежностей і впровадження нових інструментів →

Python мануфактура · Сесії: AMA та PMP · 44:20–48:12

Playwright як тонкий клієнт і підсумкова модель

[Дивитися з 44:20](https://www.youtube.com/watch?v=6QdvE9DHOIY&t=2660s). Підсумкова ієрархія: створюється root `Playwright` instance, далі `Browser`, `BrowserContext` і `Page`; locators працюють у frame/page context. `ChannelOwner` та connection/transport пов’язують language client із driver process, а browser executable і потрібні artifacts перевіряються під час installation та startup. Для співбесіди достатньо пояснити модель без переказу кожного internal class: locator описує target; action збирає parameters; client надсилає command через transport; browser-side implementation виконує потрібні checks та повертає result; Playwright додає auto-waiting, locators, assertions, traces і reporting. Деталі protocol залежать від browser engine і версії Playwright.

Як Playwright взаємодіє з браузером через протокол →

Python мануфактура · Програма курсу · 0:00–3:35

Огляд Chrome extensions і Playwright CRX

Замість ручного написання кожного кроку можна спробувати browser extensions, які записують дії та експортують код. У Chrome Web Store є кілька інструментів: Playwright CRX, recorder-плагіни, locator assistants і генератори. Playwright CRX у демонстрації працює нестабільно: sidebar відкривається, але запис падає або зависає після взаємодії зі сторінкою. Плагін підтримує різні формати експорту, зокрема Python/pytest, але сам факт наявності формату не гарантує працездатного сценарію. Якщо інструмент поводиться так само нестабільно локально, його краще видалити, а не будувати на ньому процес.

4. Playwright плагіни та codegen →

Python мануфактура · Програма курсу · 23:30–26:30

Експеримент із Playwright trace attachment

Навмисно створюється failure, щоб перевірити новий content type для Playwright trace в Allure. У цьому Python setup очікуваний інтерактивний trace у report не з’являється. Автор не видає припущення за успіх і залишає робочий fallback: зберігати traces окремим artifact та відкривати їх через Playwright Trace Viewer. Таким чином Allure покращує навігацію по tests і steps, але не замінює перевірену trace-діагностику, доки конкретна інтеграція не підтверджена end to end.

4. Allure репорт, основи та інтеграція в CI →

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

Діагностика конфлікту fixture lifecycle

Після рефакторингу suite падає через змішування plugin-managed fixtures та вручну створеного sync Playwright instance. Додатково частина launch/context options дублюється в dictionary і кількох fixtures, що робить конфігурацію непослідовною. Рішення у відео — перейти на один спосіб володіння lifecycle: custom fixtures запускають Playwright і browser, а конфігурація збирається в одному місці. Частину pytest-playwright параметрів прибирають, бо custom launcher їх уже не читає. Загальний висновок: не можна одночасно очікувати, що plugin і власний код керуватимуть тим самим browser lifecycle.

2. Pytest fixtures, playwright fixture, прараметризація тестів →

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

Стратегія поступової міграції legacy-тестів

Повне одночасне переписування Selenium-проєкту на Playwright створює надто великий ризик. Практичний порядок інший: спочатку переносити тести, які вже падають або є flaky, потім — короткі ізольовані сценарії, а далі рухатися функціональними зрізами. Старі й нові інструменти можуть тимчасово співіснувати в одному репозиторії. Окремі pytest suites і CI-команди дозволяють запускати Selenium та Playwright незалежно, тому міграцію можна виконувати без зупинки розвитку наявного набору тестів.

1. Фіксаємо назви файлів, рефакторинг та оптимізація під Python, підключаємо Ruff та uv →
Запитати в чаті про «playwright» →