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

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

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

Від падіння до trace

Зареєструйте marker smoke і позначте ним один UI test.
Налаштуйте tracing=retain-on-failure.
Навмисно зламайте locator у test environment.
Відкрийте trace.zip і знайдіть failed action, console та network context.
Є відтворюваний failed test і trace, за яким можна назвати точну причину падіння.

1. Налаштування Playwright та Pytest, простий репортінг →

Що змінилося після запису · 19:47

Selenium уже має network і console APIs

Фраза про історично складнішу роботу Selenium з console/network лишається корисним контекстом, але Selenium 4.46 документує WebDriver BiDi domains. Поточна різниця — інтегрованість trace/mocking workflow, а не абсолютна відсутність можливості.

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

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

Trace Viewer як запис виконання тесту

Для демонстрації навмисно ламається locator, після чого збережений `trace.zip` відкривається командою `playwright show-trace <path>`. Trace Viewer показує послідовність actions, стан сторінки до й після кожної дії, source line, console errors і network requests. Timeline допомагає побачити не лише місце падіння, а й час очікування. Виділивши потрібний інтервал, можна звузити network-події до конкретної дії. Snapshot сторінки також дозволяє перевірити DOM і locator навіть тоді, коли браузер із failed run уже закритий — наприклад, помітити завислий loader або overlay.

1. Налаштування Playwright та Pytest, простий репортінг →

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

`str`, `int`, `float`, `bool` і запуск прикладів

Змінна отримує тип із присвоєного значення: текст у лапках стає `str`, ціле число — `int`, число з десятковою крапкою — `float`, а `True`/`False` — `bool`. `type(value)` допомагає побачити фактичний тип. Файл можна запускати кнопкою Run в IDE й одразу звіряти оголошені значення з console output.

1 типи даних →

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

Як працювати з прикладами

Рекомендований цикл: прочитати пояснення, запустити файл, подивитися console output, знайти рядок, який його створив, а потім змінити дані й повторити запуск. Така практика розвиває здатність читати Python, формулювати точніші задачі для ШІ, описувати дефекти та предметно обговорювати код із розробниками.

0 вступ в заняття →

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 мануфактура · Програма курсу · 44:30–50:45

Console-like verification і README

Після міграції тест запускається через команду `uv run ...` з консолі, бо це ближче до майбутнього CI-запуску, ніж Run Configuration IDE. Треба перевірити, що виконався потрібний тест і що очікуване падіння справді належить тестовій логіці, а не відсутній залежності чи неправильному шляху. Фінальний крок — створити короткий `README` з мінімальною версією Python, установкою, командами запуску, структурою та правилами внесення змін. Commit message перевіряється вручну: він має називати реальну міграцію на `uv` і підключення Ruff, а не перелічувати випадкові деталі diff.

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