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

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

Практика · 16:40

Перевірити hierarchy AGENTS.md

Створи repository-level AGENTS.md і один nested AGENTS.override.md з відмінною test command. Запусти Codex із root та nested directory й попроси показати active instruction sources без виконання змін.
Learner пояснює merge order, scope і те, чому nested override застосовується лише в його subtree.

Як налаштувати мультиагентне середовище →

Python мануфактура · Програма курсу · 9:55–15:15

Перший варіант tracing і проблема дублювання

Запис запускається через `context.tracing.start(screenshots=True, snapshots=True, sources=True)`, а перед закриттям context завершується `tracing.stop(path=...)`. Trace Viewer показує Playwright actions, DOM snapshots, source files і network. Якщо вставити start/stop у кожну низькорівневу fixture, код дублюється, а один session trace змішує кілька тестів. Tracing переноситься у test-scoped app fixtures, щоб кожен тест мав окремий lifecycle.

4. Повертаємо traces, pytest hooks, рефакторинг дублювань у fixtures →

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

Окремий ZIP на основі pytest `request`

Built-in fixture `request` надає `request.node.name`, тому trace можна назвати ім’ям конкретного тесту й зберігати в `test-results/traces/<test>.zip`. Це робить артефакт однозначним і придатним для CI. ZIP відкривається командою `playwright show-trace <path>`. На timeline видно переходи, clicks, fills, assertions, snapshots, network і Python sources, що дає більше діагностичної інформації, ніж відео самого браузера.

4. Повертаємо traces, pytest hooks, рефакторинг дублювань у fixtures →

Python мануфактура · Програма курсу · 20:05–25:55

`page.pause()` і Playwright Inspector

`page.pause()` зупиняє тест і відкриває Playwright Inspector. Це дає змогу подивитися поточний DOM, перевірити locator та виконувати кроки по одному, не покладаючись лише на звичайний debugger IDE. Для короткоживучого статусу на кшталт `Saving`/`Saved` треба поставити паузу одразу після дії, яка його породжує. Якщо елемент зникає надто швидко, DevTools Sources може призупинити JavaScript через `F8`.

2. Storage state, cookie manipulation, дебаг зникаючих елементів →
Запитати в чаті про «sources» →