Termine del glossario

Playwright

Playwright è un framework open source di Microsoft che controlla i browser Chromium, Firefox e WebKit per eseguire test, acquisire screenshot e automatizzare il Web con i principali motori di rendering.

Che cosa può fare Playwright

Playwright offre un'unica API per automatizzare i tre principali motori di rendering: Chromium, usato da Chrome ed Edge; Gecko, usato da Firefox; WebKit, usato da Safari. Il supporto multipiattaforma è la sua caratteristica principale: lo stesso script può essere eseguito sui tre motori senza modifiche.

Le funzioni principali comprendono:

  • Automazione su più browser — scrivi uno script ed eseguilo su Chromium, Firefox e WebKit. La CLI di Playwright installa e gestisce i file binari necessari.
  • Acquisizione di screenshot — salva le pagine in PNG o JPEG, acquisisce l'intera pagina o un elemento preciso e permette di impostare viewport ed emulazione del dispositivo.
  • Creazione di PDF — esporta le pagine renderizzate in PDF, con controllo su dimensioni, margini e scala.
  • Intercettazione della rete — monitora, simula o modifica le richieste di rete per test e raccolta dati.
  • Contesti del browser — crea sessioni isolate, simili a finestre in incognito, che non condividono cookie, spazio di archiviazione o stato. Sono utili per acquisire pagine come tipi di utente diversi senza riavviare il browser.
  • Supporto per più linguaggi — dispone di integrazioni ufficiali per JavaScript/TypeScript, Python, Java e .NET.

Il meccanismo di attesa automatica è particolarmente utile. A differenza delle librerie che richiedono attese esplicite, Playwright aspetta che gli elementi siano collegati al DOM, visibili e stabili prima di interagire. Gli script risultano più affidabili e diminuiscono i test che falliscono in modo intermittente.

Playwright per gli screenshot

Il metodo page.screenshot() permette di controllare con precisione il risultato. Puoi acquisire il viewport visibile, l'intera pagina scorrevole o uno specifico elemento DOM passando un locator.

L'emulazione permette di simulare dispositivi precisi, impostando viewport, fattore di scala e user agent con una sola chiamata. Il registro integrato include configurazioni per telefoni e tablet diffusi, così è semplice acquisire l'aspetto di una pagina su iPhone, Pixel o iPad.

Per le pagine con contenuti caricati in modo differito, lo scorrimento e le condizioni di attesa aiutano a caricare immagini ed elementi dinamici prima dell'acquisizione. Puoi anche inserire CSS per nascondere banner dei cookie, rimuovere widget di chat o modificare lo stile prima dello screenshot.

Il supporto a WebKit permette di rilevare differenze di rendering che un test limitato a Chromium non mostrerebbe. Il build WebKit modificato non è Safari e alcuni dettagli del sistema operativo, come i codec multimediali, possono cambiare. Esegui WebKit su macOS quando serve il confronto disponibile più vicino a Safari.

In un flusso vicino all'uso di Shotomatic, Playwright è utile quando la stessa pagina deve essere acquisita più volte su browser, percorsi o stati di autenticazione diversi. Trasforma la produzione degli screenshot in una procedura esplicita anziché in una sessione manuale, per questo ricorre spesso nel monitoraggio e nel controllo qualità.

Playwright e Puppeteer a confronto

Entrambe le librerie sono valide per automatizzare browser headless, ma hanno obiettivi e approcci diversi.

Browser supportati — Playwright gestisce Chromium, Firefox e WebKit con una sola API. Le versioni attuali di Puppeteer supportano Chrome for Testing e Firefox stabile, ma non WebKit. Scegli Playwright quando devi includere anche WebKit.

Attesa automatica — Playwright aspetta che gli elementi siano pronti prima di interagire. Con Puppeteer servono più chiamate esplicite, come waitForSelector e waitForNetworkIdle, quindi aumenta il codice e possono comparire più problemi di temporizzazione.

Contesti del browser — i contesti di Playwright permettono di creare più sessioni isolate in una sola istanza del browser, riducendo l'uso delle risorse. Puppeteer offre contesti in incognito, ma la relativa API è meno sviluppata.

Maturità dell'API — Puppeteer è disponibile dal 2017 e dispone di un ecosistema più ampio di risorse della comunità. Playwright è stato lanciato nel 2020, cresce rapidamente, viene aggiornato più spesso e copre più funzioni.

Per i flussi incentrati sugli screenshot, la scelta dipende spesso dai browser richiesti. Entrambi gestiscono acquisizioni in Chrome e Firefox; per includere anche WebKit serve Playwright.

Errori comuni

  • Non installare i file binari dei browser. Dopo il pacchetto Playwright, devi eseguire il comando di installazione che scarica i browser. Senza questo passaggio, lo script termina con un errore "browser not found".
  • Ignorare i limiti dell'attesa automatica. L'attesa automatica riduce gli errori intermittenti, ma ha un timeout predefinito. Se una pagina è lenta, l'azione può scadere prima che il contenuto sia pronto. Aumenta il timeout per le pagine più pesanti.
  • Acquisire prima che i contenuti differiti siano caricati. L'attesa automatica non fa scorrere da sola l'intera pagina. Prima di uno screenshot a pagina intera, aggiungi un passaggio di scorrimento per caricare i contenuti differiti.
  • Usare il browser sbagliato. Eseguire tutte le acquisizioni su Chromium è più rapido, ma non mostra le differenze di rendering in Firefox e WebKit. Usa più browser quando il risultato visivo deve corrispondere a ciò che vedono utenti diversi.
  • Non chiudere i contesti. Se restano aperti dopo l'acquisizione, i contesti consumano memoria negli script di lunga durata. Al termine chiudi sempre i contesti e le istanze del browser.

Domande frequenti

Playwright è gratuito?

Sì. Playwright è open source con licenza Apache 2.0 ed è gestito da Microsoft. Puoi installarlo gratuitamente tramite npm, pip o NuGet.

Quali browser supporta Playwright?

Playwright supporta i propri build di Chromium, Firefox e WebKit. Può anche eseguire i canali installati di Google Chrome e Microsoft Edge. La CLI di Playwright installa e gestisce i file binari compatibili.

Playwright può acquisire screenshot in Safari?

Playwright esegue un build modificato di WebKit, non il browser Safari di Apple. WebKit può funzionare anche su Linux e Windows, ma Playwright consiglia macOS quando serve il risultato più vicino a Safari per i comportamenti legati alla piattaforma.

Quali linguaggi di programmazione supporta Playwright?

Playwright offre librerie ufficiali per JavaScript/TypeScript (Node.js), Python, Java e .NET. La versione JavaScript è la più usata e, in genere, riceve per prima le nuove funzioni.

Come gestisce i contenuti dinamici Playwright?

Playwright integra l'attesa automatica: prima di interagire con un elemento aspetta che sia visibile, stabile e utilizzabile. Questo riduce gli script inaffidabili e facilita l'acquisizione di pagine con animazioni o contenuti caricati in modo differito.

Fonti

Risorse correlate

Che cos'è Playwright? | Glossario | Shotomatic