WebDriver BiDi pronto per la produzione in Firefox, Chrome e Puppeteer

Matthias Rohmer
Matthias Rohmer

Appena la settimana scorsa, insieme a BrowserStack, abbiamo annunciato che WebDriver BiDi diventasse pronte per la produzione in BrowserStack. Questa settimana l'estate di WebDriver BiDi continua con Firefox 129 e Puppeteer 23 riceveranno entrambi il supporto per la produzione per WebDriver BiDi!

Mozilla è un collaboratore fedele di WebDriver BiDi da oltre quattro anni aiutandoti, inizialmente, a plasmare il nuovo standard, per poi implementando gradualmente in Firefox, per documentare accuratamente i progressi con la newsletter di Firefox WebDriver.

Con WebDriver BiDi ora pronto per la produzione in Firefox, Puppeteer, dalla versione 23, offre un supporto stabile per Firefox tramite WebDriver BiDi. Questo consente di automatizzare Firefox con la stessa API concisa di Chrome. Assistenza di Puppeteer per Chrome Il protocollo DevTools (CDP) rimane invariato.

Firefox, CDP e Puppeteer

Puppeteer è uno strumento affidabile che consente agli sviluppatori di automatizzare i browser basati su Chromium utilizzando il browser Chrome Protocollo DevTools, noto anche come CDP. Nel 2019 Puppeteer ha ricevuto un supporto sperimentale per Firefox.

Per riuscirci, Mozilla ha implementato e mantenuto un sottoinsieme di CDP in Firefox. Questa soluzione consente di automatizzare Firefox con l'API Puppeteer, ma aveva delle avvertenze:

  • Come suggerisce il nome, il CDP viene utilizzato da DevTools di Chrome e deve essere modificato con i requisiti di DevTools.
  • Il CDP non è standardizzato in una specifica pubblica condivisa e la sua manutenzione in Firefox richiede una comunicazione costante e impegno.
  • Poiché Firefox implementava solo un sottoinsieme di CDP, Puppeteer non poteva mai garantire il funzionamento completo dell'API con Firefox, creando confusione per gli utenti.

Siamo lieti di aver ricevuto questo supporto insieme a Mozilla per il degli ultimi anni, abbiamo sempre saputo che non si trattava di una soluzione definitiva. A partire da partnership e tra cui altri principali fornitori di browser e strumenti, insieme abbiamo creato WebDriver BiDi.

Il lavoro di squadra rende il lavoro ideale

Il team di Firefox si sta adoperando per implementare WebDriver BiDi in Firefox. Allo stesso tempo, il team Puppeteer ha ampliato il supporto di WebDriver BiDi attraverso l'API Puppeteer. L'obiettivo del lavoro di entrambi i team era rendono ogni API richiesta per i casi d'uso di automazione della produzione disponibile utilizzando WebDriver BiDi in Puppeteer, per garantire il supporto sia in Chrome Firefox.

Dashboard del team condivisa che mostra il numero di test superati negli ultimi mesi.
Dashboard del team condivisa che mostra il numero di test superati negli ultimi mesi.

In questo modo gli utenti di Puppeteer possono selezionare Firefox o Chrome per le automazioni. specificando la chiave di configurazione browser all'avvio di un Puppeteer in esecuzione in un'istanza Compute Engine.

import puppeteer from 'puppeteer';

const firefoxBrowser = await puppeteer.launch({
  browser: 'firefox', // WebDriver BiDi is used by default in Firefox.
});
const page = await firefoxBrowser.newPage();
...
await firefoxBrowser.close();

const chromeBrowser = await puppeteer.launch({
  browser: 'chrome',  
  protocol: 'webDriverBiDi', // CDP would be used by default for Chrome.
});
const page = await chromeBrowser.newPage();
...
await chromeBrowser.close();

Per ulteriori informazioni sulle novità di Firefox 129 e sul lavoro di Mozilla su WebDriver BiDi consulta il post del blog correlato a Mozilla Hacks.

Supporto di CDP in futuro

Lo snippet di codice precedente mostra che per automatizzare Chrome utilizzando WebDriver BiDi con Puppeteer devi impostare esplicitamente protocol su webDriverBiDi. Questo perché, per Chrome, Puppeteer continuerà a utilizzare CDP, per non interrompere le automazioni esistenti, ma anche per continuare a supportarle le funzionalità di Chrome.

Il supporto CDP in Firefox è deprecato da Firefox 129 e la rimozione è prevista per la fine del 2024. Se disponi di automazioni esistenti che si basano sul supporto CDP in Firefox, consigliamo di eseguire la migrazione a WebDriver BiDi. Se non è possibile, contatta dev-webdriver@mozilla.org con il tuo caso d'uso.