Preskočiť na obsah

Playwright vs Puppeteer na testy a scraping

Pre CTO a vývojárovWeb scraping a crawlery · Aktualizované

Filip PapranecZakladateľ, Digitaliko

Playwright vs Puppeteer: jedna knižnica na testy aj crawlery. Ilustrácia: okno testov so zelenými end-to-end kontrolami vedľa okna crawlera, ktorý posiela čisté HTML do Cheeria a stránky v JavaScripte do prehliadača.Playwright vs Puppeteer: jedna knižnica na testy aj crawlery. Ilustrácia: okno testov so zelenými end-to-end kontrolami vedľa okna crawlera, ktorý posiela čisté HTML do Cheeria a stránky v JavaScripte do prehliadača.

Playwright vs Puppeteer je otázka o dvoch úlohách: testoch a scrapingu. My používame Playwright na oboje, na end-to-end testy, audit webu aj na crawlery, ktoré potrebujú skutočný prehliadač. Na novú prácu by sme siahli po Playwrighte, ibaže ovládate len Chrome z Node skriptu a už máte fungujúci kód v Puppeteeri.

Najprv úprimne: Puppeteer máme len v jednom starom projekte a nikdy sme tie dva nástroje neporovnávali vedľa seba. Tento článok preto nie je benchmark. Ukazuje, čo nám beží, prečo nám stačil jeden nástroj, a rozhodnutie, ktoré pri scrapingu váži viac: či prehliadač vôbec potrebujete.

Aký je rozdiel medzi Playwright a Puppeteer?

Oba ovládajú skutočný prehliadač z kódu. Líšia sa dosahom. Puppeteer je podľa vlastnej dokumentácie JavaScriptová knižnica, ktorá ovláda Chrome alebo Firefox cez DevTools Protocol alebo WebDriver BiDi (pptr.dev, stav k 24. 10. 2026). Playwright podporuje Chromium, WebKit a Firefox na Windows, Linuxe aj macOS (playwright.dev, stav k 24. 10. 2026).

PlaywrightPuppeteer
PrehliadačeChromium, WebKit, FirefoxChrome, Firefox
JazykyJavaScript/TypeScript, Python, Java, .NET (dokumentácia)JavaScript/TypeScript
Test runnerPlaywright Test, v balíkužiadny, vlastný
Čakanielokátory čakajú samywaitForSelector a podobné, ručne
V CrawleePlaywrightCrawlerPuppeteerCrawler
Kde ho používamee2e testy, audity, crawleryjeden starý projekt

Zdroje tabuľky: stránky vyššie a návod Playwrightu na migráciu z Puppeteera, všetko stav k 24. 10. 2026.

U nás rozhodol riadok s test runnerom. Jedna knižnica, ktorá dá prehliadač aj test runner, znamená jeden nástroj na učenie, jednu inštaláciu prehliadača v CI a jednu sadu selektorov.

Ako používame Playwright na testy?

Na troch miestach, od najprísnejšieho po najvoľnejšie.

End-to-end testy. Naša štartovacia šablóna púšťa Playwright Test proti dev serveru. Skrátená konfigurácia:

// playwright.config.ts
import { defineConfig } from '@playwright/test'

export default defineConfig({
  testDir: './e2e',
  forbidOnly: !!process.env.CI,
  retries: process.env.CI ? 2 : 0,
  use: { baseURL: 'http://localhost:3001', trace: 'on-first-retry' },
  projects: [{ name: 'chromium', use: { browserName: 'chromium' } }],
  webServer: { command: 'bun run dev', url: 'http://localhost:3001', reuseExistingServer: !process.env.CI },
})

A jeden z testov:

test('dashboard redirects to login when not authenticated', async ({ page }) => {
  await page.goto('/dashboard')
  await expect(page).toHaveURL(/login/)
})

Žiadne uspávanie, žiadne ručné čakanie. expect(page).toHaveURL skúša znova, kým neprejde alebo nevyprší čas. Presne toto by ste v Puppeteeri písali sami.

Audit webu. Keď sme auditovali tento web, kontroly boli obyčajné Playwright skripty: kontrast textu z vypočítaných farieb, pravidlá prístupnosti z axe, rozloženie v šírke mobilu, načítanie pri spomalenom CPU. Jednorazové skripty, nie testovacia sada.

AI agent kontroluje vlastnú zmenu. Agent otvorí aplikáciu cez Playwright MCP a napíše, čo videl. Ako to funguje, je v článku Playwright MCP: AI agent overí zmenu v prehliadači.

Jedna knižnica na dve úlohy. Vľavo testy: playwright.config.ts s webServerom, e2e testy prihlásenia a dashboardu a skripty pri audite na kontrast, axe a šírku mobilu. Vpravo scraping: rozhodnutie pri každej stránke, čisté HTML ide do CheerioCrawlera bez prehliadača, stránky v JavaScripte alebo za prihlásením do PlaywrightCrawlera.Jedna knižnica na dve úlohy. Vľavo testy: playwright.config.ts s webServerom, e2e testy prihlásenia a dashboardu a skripty pri audite na kontrast, axe a šírku mobilu. Vpravo scraping: rozhodnutie pri každej stránke, čisté HTML ide do CheerioCrawlera bez prehliadača, stránky v JavaScripte alebo za prihlásením do PlaywrightCrawlera.

Ako používame Playwright na scraping?

Cez Crawlee, ktoré obaľuje obe knižnice. Crawlee má podľa dokumentácie tri hlavné triedy crawlerov: CheerioCrawler, PuppeteerCrawler a PlaywrightCrawler (crawlee.dev, stav k 24. 10. 2026). Výmena Puppeteera za Playwright je tam hlavne názov triedy. Skutočná voľba je o krok skôr: HTTP, alebo prehliadač.

Náš produkčný crawler, ktorý musí prejsť stránkou plnou JavaScriptu, používa PlaywrightCrawler. Zjednodušene:

import { PlaywrightCrawler } from 'crawlee'
import { router } from './routes.js'

const crawler = new PlaywrightCrawler({
  maxRequestsPerCrawl,
  requestHandlerTimeoutSecs: 360,
  navigationTimeoutSecs: 60,
  maxRequestRetries: 4,
  requestHandler: router,
  launchContext: {
    launchOptions: { args: ['--disable-gpu'] }, // pády GPU v Dockeri
  },
})

await crawler.run(startUrls)

Crawler pre klienta s online marketplace prehliadač nemá vôbec. Sitemapy a stránky produktov číta cez CheerioCrawler, lebo dáta sú v HTML. Jeden klientsky prototyp kombinuje oboje: Cheerio na verejné zoznamy, Playwright len na kroky za prihlásením.

Ako sa rozhodujeme pri každom type stránky:

  1. Otvorte stránku s vypnutým JavaScriptom

    Alebo ju stiahnite cez curl. Ak sú potrebné dáta v HTML, prehliadač netreba.

  2. Hľadajte JSON požiadavku

    Veľa stránok v JavaScripte si dáta ťahá z API. Zavolať ho priamo je lepšie ako stránku vykresľovať.

  3. Kde sa dá, použite Cheerio

    HTTP crawler je rýchlejší, zaberie menej pamäte a láme sa menej často ako prehliadač.

  4. Kde treba, použite Playwright

    Stránky vykresľované v prehliadači, prihlásenie a viackrokové postupy dostanú PlaywrightCrawler.

  5. Strážte to v oboch prípadoch

    Crawler, ktorý potichu prestane, stojí viac ako zlá knižnica. Upozornenie, keď klesne počet položiek.

Posledný krok nie je teória. Keď v decembri 2025 zomrel crawler marketplace, mesačné zobrazenia klesli z 250 000 na 66 000 skôr, než si to niekto všimol. Bol to Cheerio crawler, takže knižnica problém nebola. Chýbalo upozornenie. Celý príbeh je v článku Crawlee na web scraping: čo sa pokazí v produkcii.

Prečo sme Puppeteer nikdy nepotrebovali?

Lebo keď už bol v repozitári Playwright, každú úlohu, ktorú sme mali, pokryl. Testy potrebovali runner, Playwright ho má. Crawlery potrebovali prehliadač len na niektorých stránkach a Crawlee nám dá Playwright aj Cheerio za jedným API. Druhá knižnica na prehliadač by pridala inštaláciu, nie schopnosť.

The APIs have similarities, but Playwright offers much more possibilities for web testing and cross-browser automation.

Dokumentácia Playwright
Migrating from Puppeteer

Tú vetu napísal tím Playwrightu, takže je to pohľad dodávateľa. Na prácu len s Chromom zostáva Puppeteer rozumná voľba.

Kedy by bol lepšou voľbou Puppeteer?

Podľa dokumentácie, nie podľa našich behov:

  • Potrebujete len Chrome z Node skriptu a máte fungujúci kód v Puppeteeri. Prepis vám dá málo.
  • Pracujete blízko Chrome DevTools Protocol a chcete knižnicu postavenú okolo neho.
  • Testy už bežia v inom frameworku a potrebujete len ovládač prehliadača, nie runner.

Ak potrebujete aj WebKit, Python alebo test runner v tom istom nástroji, pokryje to Playwright. Podľa jeho návodu sa väčšina API z Puppeteera dá pri migrácii použiť tak, ako je, takže prechod býva malý.

Playwright alebo Puppeteer: čo na váš projekt?

Odpovedzte si skôr, než vyberiete. Každé „áno“ ukazuje na Playwright:

Potrebujete testy alebo crawler, ktorý v produkcii vydrží?

Automatizácie a crawlery, ktoré bežia samy a povedia vám, keď sa zastavia, staviame v rámci služby automatizácia procesov vo firme. AI dnes píše všetok náš kód a za výsledok ručí senior. Od roku 2023 sme dodali 15+ produkčných projektov.

Ozveme sa do dvoch pracovných dní a spolu vyberieme, čo vyriešime ako prvé.

Ak sa chcete najprv porozprávať, dohodnite si meeting na 15 minút s Filipom.

Ktoré vaše stránky naozaj potrebujú prehliadač?

V skratke

  • Playwright ovláda Chromium, WebKit aj Firefox a má vlastný test runner. Puppeteer ovláda Chrome a Firefox z JavaScriptu.
  • Playwright nám beží v e2e testoch, auditoch, kontrolách agentom a v crawleroch, ktoré potrebujú prehliadač.
  • Pri scrapingu je väčšia voľba HTTP s Cheeriom, alebo skutočný prehliadač, stránka po stránke.
  • Puppeteer sme nemerali. Fungujúci skript len pre Chrome si nechajte.

Časté otázky

Aký je rozdiel medzi Playwright a Puppeteer?

Puppeteer je JavaScriptová knižnica pre Chrome a Firefox. Playwright ovláda Chromium, WebKit aj Firefox, má verzie pre JavaScript, Python, Javu a .NET a vlastný test runner s lokátormi, ktoré čakajú samy. Na novú prácu s testami alebo viacerými prehliadačmi pokryje viac Playwright.

Je Playwright lepší ako Puppeteer na web scraping?

Pri scrapingu je dôležitejšie, či prehliadač vôbec potrebujete. Väčšina stránok, ktoré crawlujeme, je čisté HTML a ide do HTTP crawlera s Cheeriom. Prehliadač dostanú len stránky vykreslené JavaScriptom alebo za prihlásením, a tam používame Playwright cez Crawlee. Výkon proti Puppeteeru sme nemerali.

Dá sa prejsť z Puppeteera na Playwright?

Áno. Playwright má návod na migráciu a píše, že väčšinu API z Puppeteera možno použiť tak, ako je. Väčšia zmena je prechod z element handlov a ručného čakania na lokátory a web-first asercie.

Podporuje Puppeteer Firefox a Safari?

Puppeteer ovláda Chrome alebo Firefox cez DevTools Protocol alebo WebDriver BiDi. WebKit neovláda, takže na testy správania v Safari treba Playwright alebo iný nástroj.

Potrebujem na web scraping headless prehliadač?

Často nie. Ak sú dáta v HTML, ktoré vráti server, stačí HTTP požiadavka a parser HTML. Je to rýchlejšie a lacnejšie na prevádzku. Prehliadač použite len pri stránkach, ktoré dáta vykresľujú JavaScriptom alebo sú za prihlásením.

Opýtajte sa AI na tento článok

AI pri odpovedi využije aj naše ďalšie články a skúsenosti z reálnych projektov.

ChatGPTClaudePerplexity
Engineering

Ostatné články

Web scraping a crawlery

Crawlee na web scraping: čo sa pokazí v produkcii

Crawlee je open-source knižnica na crawling a scraping s Cheerio, Playwright alebo Puppeteer. Ako ju prevádzkujeme v produkcii, čo sa pokazilo a ktoré kontroly zachytia crawler, ktorý zomrie bez chyby.

Rozhodnutia CTO

Claude Code pricing: cena pre tím, API a agentov

Claude Code pricing podľa verejného cenníka Anthropicu (október 2026): Pro, Max, miesta v Team pláne, Enterprise a API tokeny. Čo sedí vývojárom, na čom beží AI agent a reviewer v CI a aké poistky zastavia agenta na pozadí, aby neminul rozpočet.

Harness a kontroly

Playwright MCP: AI agent overí zmenu v prehliadači

Playwright MCP dáva AI agentovi skutočný prehliadač. Ako ho používame, aby agent overil svoju zmenu v bežiacej aplikácii a vrátil PASS alebo FAIL so screenshotmi, čo tým chytíme oproti unit testom a kedy sú lepšie obyčajné Playwright skripty.

Čas prestať plánovať a začať riešiť.

Kontakt

  • Digitaliko s.r.o.
    Šípková 377/17
    958 03 Malé Uherce, Slovensko
  • Ozvite sa nám
    info@digitaliko.com
    +421 950 595 506
    WhatsApp