Nel nostro articolo precedente, abbiamo esaminato i protocolli di automazione esistenti, ovvero WebDriver "classico" e Chrome DevTools Protocol (CDP), nonché i rispettivi vantaggi e vincoli.
Scopri WebDriver BiDi, il futuro dell'automazione del browser. Si tratta di un nuovo protocollo standard di automazione del browser attualmente in fase di sviluppo, che mira a combinare il meglio di WebDriver "classico" e CDP. WebDriver BiDi promette una comunicazione bidirezionale, il che lo rende veloce per impostazione predefinita e offre un controllo a basso livello.
WebDriver BiDi | |
---|---|
WebDriver "classico" | Chrome DevTools Protocol (CDP) |
Il miglior supporto multibrowser | Messaggistica bidirezionale rapida |
Standard W3C | Fornisce un controllo a basso livello |
Realizzato per i test |
L'obiettivo di WebDriver BiDi è consentirti di scrivere test utilizzando uno qualsiasi dei tuoi strumenti preferiti e di automatizzarli in qualsiasi browser o driver, offrendoti la massima flessibilità.

Standardizzazione
Il gruppo di lavoro WebDriver BiDi è composto da un gruppo eterogeneo di fornitori di browser, progetti di automazione dei browser open source e aziende che offrono soluzioni di automazione dei browser. Questa collaborazione garantisce un futuro promettente per l'automazione dei browser.

Il lavoro viene svolto principalmente in questo repository GitHub. Si svolgono riunioni mensili con tutti i principali fornitori di browser per segnalare gli avanzamenti effettivi e discutere di specifiche discutibili e sconosciute. Il gruppo di lavoro interaziendale si assicura che le decisioni siano in linea con tutti gli stakeholder.
Stabilire e implementare un nuovo protocollo non è cosa da poco. Richiede sforzi concertati da parte di vari fornitori che collaborano e lavorano insieme. La procedura prevede:
- Specifiche: una procedura di richiesta di commenti (RFC) per raccogliere feedback sulla proposta.
- Verifica: una serie di test eseguibili su più piattaforme, che fungono da fonte attendibile per tutte le implementazioni.
- Implementazione: i browser implementano i protocolli in base alle specifiche e superano i test di verifica.
Sfide
In questa sezione esamineremo le sfide dell'implementazione di WebDriver BiDi, che cerca di trovare un equilibrio tra compatibilità, usabilità e implementabilità.
Oltre un clone di CDP: adottare la compatibilità cross-browser
CDP, con i suoi elementi specifici di Chrome e DevTools, non può essere replicato direttamente nella specifica WebDriver BiDi. L'implementazione di CDP così com'è non sarebbe fattibile per altri browser, rendendo inutile una specifica che ne descriva semplicemente la procedura.
Garantire una bassa latenza
WebDriver BiDi deve essere progettato per gestire una latenza elevata senza sacrificare le prestazioni. In CDP, la latenza è bassa perché il client e il server vengono eseguiti quasi sempre nella stessa macchina fisica, ma non è così in WebDriver BiDi. Pertanto, WebDriver BiDi deve ridurre al minimo il numero di roundtrip richiesti tra client e server.
Dare la priorità all'ergonomia in BiDi
Sebbene non sia previsto che gli sviluppatori creino client WebDriver BiDi da zero, è fondamentale evitare di complicare eccessivamente il protocollo. Un BiDi eccessivamente complesso non solo sarebbe difficile da implementare, ma anche da utilizzare, ostacolandone l'adozione e l'utilizzo.
Garantire l'implementabilità del BiDi
WebDriver BiDi deve essere realisticamente implementabile, tenendo conto delle limitazioni dei vari browser. Ad esempio, conservare tutti gli oggetti JavaScript mai esposti ai client da BiDi potrebbe causare perdite di memoria, mentre non conservarne nessuno ostacolerebbe il debug e l'interazione con il codice JavaScript di una pagina. È essenziale trovare un equilibrio che consenta un'automazione efficace del browser senza compromettere le prestazioni.
Superare le sfide
In questa sezione, illustreremo le strategie adottate per risolvere le sfide dell'implementazione di WebDriver BiDi.
Prototipazione rapida
Affrontare la sfida dell'implementabilità è fondamentale per il successo del BiDi. Per accelerare l'avanzamento della specifica e dei test, abbiamo adottato un approccio di prototipazione rapida utilizzando NodeJS. Questo non solo ci consente di sperimentare soluzioni diverse, ma facilita anche lo sviluppo dei test della piattaforma web.
Progettare tenendo presente il rendimento
Questa decisione di progettazione è basata sul rendimento, poiché in alcuni casi la latenza è elevata in WebDriver BiDi. Ad esempio, quando viene recuperato un ID oggetto e un valore dal browser, WebDriver BiDi richiede un solo viaggio di andata e ritorno, mentre CDP ne richiede due. Questo perché WebDriver BiDi può restituire sia l'ID sia il valore in una singola risposta (il risultato non deve essere serializzabile in JSON), mentre CDP deve restituirli separatamente.
Enfasi sui test della piattaforma web (WPT)
I test della piattaforma web svolgono un ruolo significativo nel funzionamento di BiDi. Attualmente copre WebDriver "classico" e WebDriver BiDi e funge da riferimento affidabile per tutte le implementazioni. Questi test sono progettati per essere eseguiti e superati in varie implementazioni, garantendo un'esecuzione coerente del protocollo cross-browser, che è fondamentale per il successo di WebDriver BiDi. Dai un'occhiata all'ultimo risultato WPT nella dashboard.
Qual è il piano e quali sono gli attuali progressi?
Dai un'occhiata alla roadmap di WebDriver BiDi per comprendere la direzione del progetto. La roadmap è in continua evoluzione.
Consulta gli ultimi test della piattaforma web per conoscere lo stato di implementazione nei vari browser, in quanto rappresentano la fonte attendibile.
Tieni traccia dei traguardi del progetto per monitorarne l'avanzamento.
Scopri i risultati raggiunti nel 2023 e mantieni aggiornati sugli ultimi sviluppi.
Supporto di WebDriver BiDi: come puoi aiutarci
Ti entusiasma il futuro dell'automazione del browser con WebDriver BiDi? Ecco come puoi dimostrare il tuo sostegno:
- Diventa un early tester e adopter e contribuisci a plasmare il futuro di WebDriver BiDi.
- Spargi la voce! Condividi il progetto sui social media utilizzando l'hashtag #WebDriverBiDi.
- Richiedi assistenza. Invia una richiesta di funzionalità o consulta i tuoi strumenti preferiti per conoscere i loro piani di adozione di WebDriverBiDi.
- Partecipa al RFC, fornendo feedback sulle API.
Domande comuni
WebDriver BiDi sostituirà Chrome DevTools Protocol (CDP)?
No. I browser basati su Chromium continueranno a utilizzare CDP per scopi di debug, mentre WebDriver BiDi è la nuova specifica per soddisfare le esigenze di test con un'API più ergonomica.
Poiché Puppeteer utilizza CDP, significa che verrà ritirato?
No. Tuttavia, WebDriver BiDi consentirà a Puppeteer di diventare uno strumento di automazione cross-browser.
Esiste una roadmap pubblica?
Sì, consulta la nostra roadmap su GitHub.