Конспект і таймкоди
0: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.
Що змінилося після запису
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.
Перевірено 2026-07-31
Термін
actionability
Набір перевірок, які Playwright виконує перед locator action. Для click офіційний contract включає один match, visible, stable, receives events та enabled; timeout завершується TimeoutError.
6:00
Selenium WebDriver, explicit waits і ширша matrix
Selenium 4 використовує стандартизований W3C WebDriver protocol. Client binding надсилає HTTP-команди WebDriver endpoint, а browser-specific driver виконує їх у Chrome, Firefox, Edge, Safari чи іншому підтримуваному браузері. У старішому Selenium 3 застосовувався JSON Wire Protocol.
У класичному Selenium flow перед click або input часто використовується explicit wait: client повторно перевіряє умову на кшталт visibility або clickability, а після її виконання надсилає окрему action command. Це створює більше round trips, особливо коли browser session віддалена.
Сильна сторона Selenium — широка екосистема vendor drivers і remote providers. Якщо навіть невелика частка користувачів певного браузера означає сотні тисяч людей або браузер входить у договірну support matrix, таке покриття не можна відкидати лише через повільніший test run.
У Python-проєкті технічно можна мати і Playwright, і Selenium tests під pytest: Playwright для основного functional suite, Selenium — для вузької cross-browser перевірки. Це виправдано лише реальною вимогою, бо два automation stacks подвоюють dependency, fixture та maintenance surface.
Термін
WebDriver remote end
Сторона W3C WebDriver protocol, яка приймає HTTP command від local end, виконує browser automation operation і повертає HTTP response.
Практика
Вибір automation stack від support matrix
- Візьміть реальну browser analytics або письмову support policy продукту.
- Позначте scenarios, які достатньо виконувати в Chromium/Firefox/WebKit.
- Окремо позначте browser/vendor requirements, що потребують Selenium/Grid або cloud provider.
- Запишіть очікувану topology, latency risks і мінімальний cross-browser suite.
Результат: Є коротке рішення Playwright-only або Playwright+Selenium, пов'язане з виміряною browser matrix, а не з популярністю інструмента.
Локально Selenium client, driver і browser часто знаходяться на одній машині, тому додаткові HTTP round trips майже непомітні. У remote topology команди можуть пройти від CI runner до Selenium Server/Grid, далі до remote node або cloud browser і назад. Polling explicit waits множить network latency на кількість перевірок.
Географія також впливає на system behavior: CI runner, browser node і application backend у різних регіонах дають інший latency profile, ніж локальна машина. Тому green local run не доводить, що timeout достатній для Grid/BrowserStack. Remote suite треба перевірити до merge, а browser nodes за можливості розміщувати ближче до application environment.
У Playwright очікування й action orchestration потребують менше client-side polling round trips, тому modern UI suite зазвичай працює швидше й стабільніше. Але запити самої сторінки до backend однаково залежать від мережі: Playwright не прибирає latency тестованої системи.
21: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 і швидкість появи нових можливостей.
25:00
WebDriver BiDi та критерії вибору
WebDriver BiDi додає двосторонні події й команди до WebDriver ecosystem: console/network events, більш оперативний browser state та можливості, для яких односпрямованого command-response API недостатньо. У відео технологія описується як така, що ще потребує узгодження версій Selenium, browser і driver та не має однакової зрілості у всіх language bindings.
Фінальне порівняння: Playwright — менше ручних waits, багаті debugging artifacts і швидкий workflow для сучасних engines; Selenium — ширша browser/vendor compatibility, але більше інфраструктурних і synchronization витрат. Вибір робиться від support matrix, geography, потрібних protocols і вартості maintenance, а не від загальної популярності інструмента.
Практичний default для курсу — Playwright. Selenium варто додавати лише тоді, коли конкретний browser або remote provider є перевіреною вимогою, яку Playwright suite не закриває.
Що змінилося після запису
WebDriver BiDi вже визначає основні modules, але ще є Working Draft
У відеоУрок описує BiDi як тривалий незрілий напрям із version-sensitive support.
АктуальноLatest W3C publication, перевірена 2026-07-31, датована 2026-06-29 і має статус Working Draft. Specification уже визначає browsing context, input, log, network і script modules; browser/binding coverage лишається version-dependent.
Що змінилосяW3C Working Draft 2026-06-29
Перевірено 2026-07-31
Термін
WebDriver BiDi
W3C protocol для двосторонніх commands та events через WebSocket connection. Специфікація визначає modules для browsing context, input, log, network і script, але станом на 2026-07-31 має статус Working Draft.
Джерела та додаткові матеріали
- Playwright Browsers ↗Microsoft Playwright · перевірено 2026-07-31
Current engine, branded-channel, Firefox і WebKit support boundaries.
- Playwright Auto-waiting ↗Microsoft Playwright · перевірено 2026-07-31
Exact actionability checks and timeout behavior for locator actions.
- W3C WebDriver Recommendation ↗W3C · перевірено 2026-07-31
Нормативний HTTP command/response contract між local і remote ends.
- W3C WebDriver BiDi ↗W3C · перевірено 2026-07-31
Поточний двосторонній protocol contract і статус Working Draft.