Що таке Playwright?
Playwright — сучасний інструмент Microsoft для автоматизації браузерів та E2E-тестування. Він керує Chromium, Firefox і WebKit одним API та з коробки розвʼязує головний біль автотестів — нестабільність через тайминги.
Ключова особливість — автоочікування: перед дією Playwright сам дочікується, поки елемент зʼявиться й стане клікабельним. Це прибирає ручні паузи, через які тести падають через раз без жодної причини.
У комплекті йдуть зручні інструменти: запис сценарію кліками, трасування тесту, що впав, з історією кроків і скриншотами, паралельний запуск, перехоплення мережевих запитів. Пишуть тести найчастіше на TypeScript або Python.
Де застосовується
Playwright частіше обирають у продуктових командах і нових проєктах, де фронтенд написаний на JavaScript чи TypeScript: тести живуть у тому самому репозиторії і тією самою мовою, що й застосунок. Один набір перевірок при цьому виконується в Chromium, Firefox і WebKit без переписування.
Крім самих тестів інструмент закриває й суміжні задачі: запис сценарію за діями у браузері, налагодження з покроковим переглядом, трасування з відео і знімками екрана при падінні, підміна мережевих запитів та емуляція мобільних пристроїв. Це помітно скорочує час на розбір нестабільних прогонів.
Приклад
Тест відкриває каталог, застосовує фільтр за ціною і перевіряє, що у видачі не лишилося товарів дорожчих за задану суму. Очікування появи оновленого списку відбувається автоматично — писати паузи вручну не доводиться.
import { test, expect } from '@playwright/test';
test('submits a consultation request', async ({ page }) => {
await page.goto('/ua/glossary');
await page.getByRole('button', { name: 'Записатися' }).click();
await page.getByLabel('Імʼя').fill('Анна');
await page.getByLabel('Телефон').fill('+380991234567');
await page.getByRole('button', { name: 'Надіслати' }).click();
await expect(page.getByText('Дякуємо за заявку')).toBeVisible();
}); Playwright чи Selenium
Selenium — галузевий стандарт із максимальною підтримкою мов і браузерів, частіше трапляється у великих і давніх проєктах, особливо на Java. Playwright молодший, швидший у запуску та стабільніший за замовчуванням, тому його частіше обирають у нових проєктах. Для карʼєри в QA Automation корисно знати обидва.
Часті запитання
Чим Playwright кращий за Selenium?
Насамперед вбудованими очікуваннями: він сам дочікується, поки елемент стане видимим і активним, що прибирає основну причину нестабільних тестів. Додайте до цього швидше встановлення, роботу з трьома рушіями браузерів і зручне трасування падінь.
Якими мовами можна писати тести?
Офіційно підтримуються TypeScript і JavaScript, Python, Java та C#. Найповніше і найраніше можливості виходять у версії для TypeScript — саме її використовує більшість команд і більша частина документації та прикладів у мережі.
Чи підходить Playwright для тестування API?
Так, у ньому є вбудований клієнт для HTTP-запитів. Це зручно у змішаних сценаріях: підготувати дані запитом до API, а потім перевірити, як вони відображаються в інтерфейсі. Для повноцінного набору API-тестів частіше беруть спеціалізовані інструменти.
Чи варто переводити наявні тести із Selenium?
Лише за реального болю: постійні падіння, довгі прогони, складна підтримка. Переписування великого набору — це тижні роботи. Часта практика — лишити наявні тести і писати на Playwright усе нове, поступово зміщуючи баланс.