Eszközök/Webfejlesztés
Playwright: egy böngésző-API tesztekhez, szkriptekhez és agentekhez
A Playwright a Chromiumot, a Firefoxot és a WebKitet vezéreli egyetlen Apache-2.0-API-ról: tesztfuttató, agentekhez való CLI és MCP-szerver. Mibe kerül, és hol akad el.
- Típus
- Browser automation
- Ár
- Apache-2.0 · cloud paid
Balázs Csorba··10 perc olvasás
- End-to-end testing
- Browser automation
- MCP
- Cross-browser

A lényeg röviden
- A Playwright Apache-2.0, fizetős kiadás nélkül; a pénz a CI-percekben jelenik meg, illetve opcionálisan a Microsoft Playwright Workspacesben, amely tesztpercenként számláz, másodpercnyi pontossággal, egy 100 perces, 30 napos próbaidő után.
- Egy API lefedi a Chromiumot, a Firefoxot és a WebKitet Windows, Linux és macOS alatt, natív mobil emulációval az Android Chrome-hoz és a Mobile Safarihoz.
- Az agent-felületek első féltől származnak: 70+ eszközből álló MCP-szerver accessibility snapshotokkal, takarékos CLI állandó daemonnal, valamint planner, generator és healer teszt-agentek.
- Az accessibility snapshot a LLM-es döntés: az elemek pixelek helyett refet kapnak, az interakció determinált marad, és nem kell vision modell.
- A futtató, nem az API okozza a karbantartási költséget: a projektek, a sharding, a trace-ek és az újrapróbálás ingyenes, de nem gondozásmentes.
A Playwright a Microsoft böngésző-automatizálása, mára pedig egy repóban három termék: egy tesztfuttató, egy szkriptelő könyvtár és egy agent-felület MCP-szerverből és parancssori eszközből. Apache-2.0, nincs fizetős kiadása, és továbbra is a kategória legkényelmesebb API-ja. Ennek az értékelésnek az álláspontja: az új end-to-end munka alapértelmezése — és az agent-felületek az oka, hogy a meglévő suite-ot érdemes újranézni.
A Seleniummel, a Cyressszel és a Puppeteerrel versenyez, és egyre inkább a kézzel írt scraping- és QA-szkriptekkel, mert ugyanaz a page objektum szolgálja ki a CI-beli tesztet, az éjszakai riportot és azt az LLM-et, amely accessibility snapshotokon át vezeti a böngészőt. A mag semmilyen része nem igényel modellt: az agent-eszközök ráülnek, és figyelmen kívül hagyhatók — ezért vezetnek be csapatok előbb teszt-eszközként, és csak később fedezik fel az agent-réteget.
Mi ez
A projekt Chromium-, Firefox- és WebKit-automatizálást szállít Windows, Linux és macOS alatt, helyben vagy CI-ben, fej nélkül vagy láthatóan, natív mobil emulációval az Android Chrome-hoz és a Mobile Safarihoz. A jelenlegi sorozat 1.63, 2026 szeptemberében kiadva, a böngésző-binárok pedig ehhez a kiadáshoz vannak rögzítve.
- Apache-2.0 fizetős kiadás nélkül; az npm-csomag Node 20-as vagy újabb verziót ír elő.
- Egy API négy nyelven: JavaScript és TypeScript, Python, Java és .NET.
- Tesztfuttató auto-waitinggel, web-first assertionökkel, fixture-ökkel, párhuzamos projektekkel, shardinggal, újrapróbálással és HTML-jelentéssel.
- A böngészőkontextusok minden tesztnek friss profilt adnak, így a belépési állapot fixture, nem megosztott globális.
- Eszközök a futás köré: codegen, UI mód, trace-nézegető, hálózati mocking, óra-szabályozás és aria snapshotok.
- Kiadásonként hivatalos kontenerképek, amelyek miatt a CI böngészői megegyeznek a helyiekkel.
- Három agent-felület: MCP-szerver, installálható skillökkel rendelkező CLI, valamint planner, generator és healer teszt-agentek.
Hogyan működik
A meghajtó minden böngészővel saját protokollon beszél — patchelt Chromium- és Firefox-buildek, plusz egy patchelt WebKit —, éppen ezért kínálhatja ugyanazt az egy API mindhárom motoron, a legkisebb közös nevező helyett. A lokátorok az akció végrehajtásakor oldódnak fel, minden akció pedig megvárja, hogy az elem működjön; a flaky teszt szokásos javítása így assertion, nem sleep.
A meghajtó felett ül a futtató, ahol az érték java része keletkezik: egy konfigurációs fájl deklarálja a projekteket — böngészők, viewportok, hitelesítések —, a teszteket workerok között osztják el, a sharding gépekre bontja őket, és minden hibához tartozik egy lépésenként visszajátszható trace. Ez a trace teszi lehetővé a támogatott diagnózist is, mert strukturált adat, nem egy stack trace képernyőképe.
Első lépések
Egy scaffold, egy install, egy futás: a npm init playwright@latest megírja a konfigurációt és az első spect, az npx playwright install --with-deps letölti a rögzített böngésző-binárokat a rendszerkönyvtárakkal, a npx playwright test pedig fej nélkül és párhuzamosan fut mindhárom motoron.
import { test, expect, devices } from '@playwright/test';
test('order confirmation shows a number', async ({ page }) => {
await page.goto('/checkout');
await page.getByLabel('Email').fill('qa@example.com');
await page.getByRole('button', { name: 'Place order' }).click();
await expect(page.getByRole('status')).toContainText(/Order WS-\d+/);
});
test.describe('phone', () => {
test.use({ ...devices['iPhone 15'] });
test('checkout renders on a phone viewport', async ({ page }) => {
await page.goto('/checkout');
await expect(page.getByRole('heading', { name: 'Checkout' })).toBeVisible();
});
});Ami gyorsan öregszik, nem a futtató, hanem a szelektorok. A projekt saját tanácsa: szerepcímke- és címkelokátorokat előnyben részesíteni, az assertionöket web-first módon tartani, hogy az időkorlátig újra ellenőrizzenek egyszeri mintavétel helyett, és hibánál trace-et nyitni, nem a stackből következtetni.
Agentek a kormánynál
Ez az a rész, amely megváltoztatta az eszköz szerepét. A Playwright ma szabványos módja annak, hogy egy nyelvi modell böngészőt vezéreljen, a projekt pedig három utat kínál hozzá, mindet első féltől.
# MCP server: structured tool calls, accessibility snapshots with element refs
{
"mcpServers": {
"playwright": { "command": "npx", "args": ["@playwright/mcp@latest"] }
}
}
# CLI: shell commands for a coding agent, headless by default
npm install -g @playwright/cli
playwright-cli open https://example.com
playwright-cli snapshot
playwright-cli click e5
# Test agents: planner, generator and healer, installed into the repo
npx playwright init-agents --loop=vscode- Az MCP-szerver accessibility snapshotokat ad vissza: minden elem olyan reft kap, mint az
e5, így a modell referenciára kattint, nem koordinátát tippel, és vision modell sem kell. A dokumentáció 70+ eszközt listáz, hálózati mocking, storage, tracing és videó capability flag-ek mögött. - A CLI a takarékos út: tömör kimenet, állandó daemon, hogy a parancsok ne fizessenek böngészőindítást, igény szerint felfedezett skill-ök és a parancsok között állapotot megőrző munkamenetek.
- A Playwright teszt-agentei — planner, generator és healer — Markdown-teszttervet írnak, abból specet készítenek, a hibás teszteket pedig újrajátszással és az oldal újravizsgálatával javítják; az
npx playwright init-agentsa VS Code, a Claude Code, a Codex és az OpenCode definícióit telepíti. - A dokumentáció egyenesen kimondja a cserét: az MCP a specializált agentic hurkokra és a felfedező automatizálásra való, a CLI a nagy kódalapokkal dolgozó coding agentekre, a CLI fej nélkül indul, az MCP pedig látható böngészőt nyit.
A token-gazdaság gyakrabban dönt, mint a funkciók. Egy MCP-kör minden lépésben tool-sémákat és friss snapshottölt a kontextusba; egy CLI-parancs egy YAML-snapshot fájljának útját és egy státuszsor adja vissza. Egy hosszú életű agentnél, amelynek végig kell kattintania egy folyamatot, ez a különbség a kontextusba beférő és a beférni nem akaró munkamenet között.
A képernyőképek megvannak — egy eszközhívás, és a vision mód az egérre teszi a koordinátákat —, de pixelenként fogyasztanak tokent, és pontosan azt az egyértelműséget hozzák vissza, amit a snapshot-döntés eltávolított. Az accessibility fa egy összefoglaló, amire a modell cselekedhet; a képernyőkép bizonyíték, amit értelmeznie kell.
Árazás
A keretrendszer ingyenes, nincs Pro-kiadás, nincs ülőhelyszám és nincs felhasználási mérés. A költség három helyen jelenik meg: a CI-percek, amelyeket a suite eléget, a fejlesztői idő, amely zölden tartja, és — csak ha felügyelt grid kell — a Microsoft első féltől származó felhője.
- Keretrendszer: ingyenes Apache-2.0 alatt, korlátlan projekt és teszt, megújítandó licenc nélkül.
- Playwright Workspaces az Azure App Testingben: használathoz igazodva tesztpercenként, másodpercnyi pontossággal, egy 100 perces, 30 napos próbaidővel; azon túl a workspace átvált a mért csomagra, a közzétett árak pedig régiófüggők.
- A BrowserStackéhez hasonló külső grid-ek párhuzamos munkamenetenként vagy előfizetéssel számláznak, és csak valódi eszkökhöz, tágabb böngészőmátrixhoz vagy megfelelőséghez kellenek.
- A legnagyobb tétel sosem a licenc: a flaky tesztek kivizsgálása és a szelektorok gondozása az ismétlődő költség, és egyik csomag sem fedezi.
Mivel a futtató ingyenes, a migrációs kérdés általában időről szól, nem költségvetésről. A meglévő suite áthozása újraírt szelektorokat, fixture-öket és egyedi parancsokat jelent, a megtérülés pedig a második karbantartási hónappal jön, nem az első zöld buildtel.
Hol nyikorog
A gyengeségek ismertek és nagyrészt elfogadottak. A böngésző-binárok kiadáshoz kötöttek, a frissítés tehát tervezett feladat, amely a CI-image-eket is magával húzza. A futtató szélessége sok felület, mielőtt a csapat bármit is látna a shardingből és a trace-ekből. A WebKit itt patchelt build, nem maga a Safari, így egy Apple-specifikus hiba későn is előbukkannhat. Az CLI- és MCP-réteg pedig elég új, hogy a parancskészletek a minor kiadások között mozduljanak.
| Playwright | Selenium | Cypress | |
|---|---|---|---|
| Meghajtó | Saját protokoll böngészőnként | W3C WebDriver | Az oldalba szúrt proxy |
| Böngészők | Chromium, Firefox, WebKit | Bármely WebDriver-böngésző | Chrome, Firefox, Edge, Electron |
| Futtató | Beépített: párhuzamosság, sharding, trace | Önállóan kell vinni | Beépített, sharding pluginekkel |
| Agent-felületek | MCP, CLI és teszt-agentek | Közösségi MCP-szerverek | Közösségi pluginek |
| Legjobb illik | Új suite-ok és agent vezérelt munka | Régi stack-ek és vendor grid-ek | Komponensközpontú front-end csapatok |
Az őszinte összehasonlítás a hatókörökről szól, nem a minőségről. A Selenium marad a válasz, ha szerződés vagy eszközhálózat követeli meg; a Cypress kényelmes a már belefektetett csapatoknak; a Puppeteer könyvtár, nem keretrendszer, és a szkript méretéhez való. A Playwright azt állítja, hogy egy eszköri mind a négy munkát — ennek a állításnak a karbantartási ára az a böngészőmátrix, amely most a CI-ben fut.
Ítélet
A Playwright a böngésző-automatizálás legerősebb alapértelmezése, az érdekes kérdés pedig már nem az, bevezeti-e valaki, hanem hogy három felületéből melyiket kinek teszi ki.
- Vigye be új end-to-end munkához. A futtató, a kontextus-izoláció és a trace-nézegető a második hónaptól térül meg — éppen akkor, amikor a vékonyabb eszkörfajta drágább lesz.
- Vigye be, ha agentnek kell vezérelnie a böngészőt. A refek és szerepek olcsóbbak és determináltabbak a pixeleknél, és a projekt maga gondozza az MCP- és CLI-utakat, nem a közösségre bízza.
- Tervezze be a frissítési ritmust: a néhány hetente új böngésző-binárokat húzó kiadásvonal azt jelenti, hogy a lockfile, az image és a böngészők együtt mozognak, vagy sehogy.
- Tartsa meg a Seleniumot, ahol a WebDriver vagy eszközhálózat szerződéses, és ne írja át a zöld Cypress suite-ot csak azért, mert a másik API szebb.
- Ne kezelje review-ként a teszt-agenteket. A healer kihagyhat egy tesztet, amelyet töröttnek tart — ésszerű alapértelmezés, de rossz észrevétlenül hagyni.
A böngésző már nem csak az, amit tesztelnek; az is a felület, amelyet egy agent kezel. Azok az eszközök, amelyek strukturált állapotként mutatják — szerepek, refek, szöveg —, jobban öregszenek, mint amelyek pixeleként.
Források
Gyakori kérdések
Ingyenes a Playwright használata?
A keretrendszer Apache-2.0, fizetős kiadás nélkül. A költség a CI-percekben és a fejlesztői időben jelenik meg, illetve opcionálisan a Azure App Testingen belüli Microsoft Playwright Workspacesben, amely tesztpercenként, másodpercnyi pontossággal számláz egy 100 perces, 30 napos próbaidő után.
MCP-szervert vagy CLI-t használjon az agent?
A dokumentáció a CLI-t helyezi előrébb a coding agenteknél: a tömör kimenetű shell-parancsok nem töltik tele a kontextust tool-sémákkal és accessibility-fákkal. Az MCP olyan felfedező hurkokra való, ahol az állandó állapot és a strukturált paraméterek számítanak; az MCP látható böngészőt nyit, a CLI alapból fej nélkül fut.
Miben más a Playwright, mint a Selenium?
A Playwright saját protokollokon vezérli a böngészőket, és egy API-t, auto-waitinges, web-first assertionöket kínáló futtatót, valamint verzióhoz kötött böngésző-binárokat szállít. A Selenium W3C WebDriveret beszél, ami akkor számít, ha szerződés vagy vendor grid követeli meg, amúgy ragasztóból többe kerül ugyanaz a folyamat.
Képes a Playwright LLM-mel tesztet generálni és javítani?
Igen, első féltől: az npx playwright init-agents planner-, generator- és healer-definíciókat telepít, amelyek Markdown-teszttervet írnak, abból specet készítenek, és a hibás teszteket az újrajátszással és az oldal újravizsgálatával javítják. A healer a szerinte törött tesztet ki is hagyhatja — ésszerű alapértelmezés, de rossz észrevétlenül hagyni.