Definicja #
Playwright to nowoczesna biblioteka do automatyzacji przeglądarek i testów E2E (end-to-end), stworzona przez Microsoft. Obsługuje trzy silniki przeglądarek — Chromium (Chrome, Edge), Firefox i WebKit (Safari) — z jednego API, co umożliwia cross-browser testing bez zmiany kodu testów.
Kluczowe funkcje Playwright:
- Auto-waits — Playwright automatycznie czeka na element do interakcji (widoczność, możliwość kliknięcia, brak animacji) zanim wykona akcję; eliminuje
sleep()i niestabilne testy - Locators — preferowany sposób znajdowania elementów:
page.getByRole(),page.getByText(),page.getByLabel(); semantyczne i odporne na zmiany DOM - Codegen — nagrywanie akcji użytkownika w przeglądarce i generowanie kodu testu:
playwright codegen https://example.com - Trace Viewer — wizualna oś czasu wykonania testu z zrzutami ekranu, siecią i konsolą; nieoceniony przy debugowaniu
- API testing —
request.get(),request.post()do testowania REST API bez przeglądarki (lub w połączeniu z UI) - Network interception — przechwytywanie i mockowanie żądań HTTP:
page.route(); testowanie scenariuszy offline lub z symulowanymi odpowiedziami API - Parallel execution — testy wykonywane równolegle w izolowanych kontekstach przeglądarki
- Wielojęzykowość — API dostępne dla JavaScript/TypeScript, Python, Java i C#
Playwright jest często porównywany z Selenium (starszy, wolniejszy) i Cypress (tylko Chromium w darmowej wersji, brak multi-tab). Playwright jest obecnie rekomendowanym narzędziem do nowych projektów E2E.
Zastosowania #
- Testy E2E aplikacji webowych — weryfikacja pełnych przepływów użytkownika (rejestracja, koszyk, checkout) we wszystkich głównych przeglądarkach
- Cross-browser testing — jeden zestaw testów uruchamiany na Chromium, Firefox i WebKit bez modyfikacji kodu
- Testowanie aplikacji Angular, React, Vue — integracja z frameworkami frontendowymi; dedykowane biblioteki (@playwright/experimental-ct-angular)
- API + UI testing w jednym — weryfikacja integracji frontendu z backendem w jednym teście
- Visual regression testing — zrzuty ekranu i porównanie
expect(page).toHaveScreenshot()
Ścieżka nauki #
Playwright jest aktualnie najlepszym wyborem do nowych projektów testów E2E — bogata dokumentacja i aktywny development Microsoftu.
Zacznij od:
- Instalacja:
npm init playwright@latest— kreator konfiguruje projekt, pobiera przeglądarki - Pierwszy test:
test('example', async ({ page }) => { await page.goto('url'); await expect(page).toHaveTitle('...'); }) - Locators:
getByRole(),getByText(),getByPlaceholder()— semantyczne znajdowanie elementów - Codegen: nagraj pierwszy test przez
npx playwright codegen
Następnie pogłębiaj:
- Page Object Model — wzorzec organizacji testów dla większych projektów
- Fixtures i hooks —
beforeEach,afterAll, custom fixtures dla współdzielonych zasobów - Trace Viewer i debugging —
npx playwright show-trace trace.zip - Network mocking —
page.route()do symulowania odpowiedzi API - CI/CD — konfiguracja GitHub Actions z oficjalnym action Playwright
FAQ #
- Czym różni się Playwright od Selenium?
- Playwright jest nowocześniejszy — obsługuje wiele przeglądarek z jednego API, ma auto-waits eliminujące niestabilne testy, Trace Viewer do debugowania i szybsze wykonanie. Selenium jest starszy, ma większy ekosystem i wsparcie dla egzotycznych przeglądarek. Do nowych projektów E2E rekomendowany jest Playwright.
- Czym różni się Playwright od Cypress?
- Cypress działa wyłącznie w Chromium (wersja darmowa); Playwright obsługuje Chromium, Firefox i WebKit. Playwright obsługuje multi-tab i multi-origin bez ograniczeń. Cypress ma lepszy DX dla prostszych projektów i rozbudowane pluginy. Playwright jest bardziej elastyczny dla złożonych scenariuszy i cross-browser testowania.
- Czy Playwright obsługuje mobilne przeglądarki?
- Playwright emuluje urządzenia mobilne (iPhone, Android) przez device emulation — symulację viewport, user-agent i touch events. Nie uruchamia natywnych przeglądarek mobilnych, ale WebKit emuluje Safari mobilne. Dla testów na prawdziwych urządzeniach mobilnych potrzebny jest np. BrowserStack lub Sauce Labs.
- Jakie języki programowania obsługuje Playwright?
- Playwright ma oficjalne API dla JavaScript/TypeScript (najpopularniejsze), Python, Java i C#. Ekosystem narzędzi (Codegen, Trace Viewer, VS Code extension) jest najbogatszy dla TypeScript. Wybór języka zależy od technologii projektu — w .NET naturalny wybór to C#, w Angular/React — TypeScript.
- Ile zarabia QA Engineer znający Playwright?
- QA Engineer lub SDET ze znajomością Playwright, TypeScript i Page Object Model zarabia w Polsce od 8 000 do 18 000 zł brutto. Znajomość testów E2E + CI/CD + API testing to kompletny profil QA Automation Engineer, który jest poszukiwany na rynku.