WebDriver BiDi gotowy do wykorzystania w środowisku produkcyjnym w przeglądarkach Firefox, Chrome i Puppeteer

Matthias Rohmer
Matthias Rohmer

W zeszłym tygodniu, razem z BrowserStack, ogłosiliśmy, że WebDriver BiDi produkcyjnego środowiska pracy w stosunku do przeglądarek. W tym tygodniu lato WebDriver BiDi trwa Przeglądarki Firefox 129 i Puppeteer 23 otrzymują gotowe wsparcie dla technologii WebDriver BiDi!

Mozilla od ponad 4 lat współpracuje przy WebDriver BiDi pomagając nam opracowywać nowy standard, a potem stopniowo wdrażać w Firefoksie, dokumentując swoje postępy w Firefox WebDriver Newsletter.

Dzięki WebDriver BiDi w wersji 23 przeglądarki Firefox, Puppeteer, już gotowe do wykorzystania w środowisku produkcyjnym zapewnia stabilną obsługę przeglądarki Firefox za pomocą technologii WebDriver BiDi. Pozwala to zautomatyzować Firefox z tym samym zwięzłym interfejsem API co Chrome. Obsługa Chrome przez Puppeteer Protokół CDP (DevTools Protocol) pozostaje bez zmian.

Firefox, CDP i Puppeteer

Puppeteer to niezawodne narzędzie dla programistów do automatyzowania przeglądarek opartych na Chromium za pomocą Chrome. protokół DevTools (nazywany też CDP). W 2019 roku Puppeteer uzyskał wsparcie eksperymentalne dla przeglądarki Firefox.

Aby to umożliwić, Mozilla wdrożyła i utrzymywała podzbiór CDP w Firefox. Dzięki temu rozwiązaniu Firefoksa można zautomatyzować za pomocą interfejsu API Puppeteer, ale wiąże się z zastrzeżeniami:

  • Jak sama nazwa wskazuje, CDP jest używane w Narzędziach deweloperskich w Chrome i trzeba je zmienić z wymaganiami Narzędzi deweloperskich.
  • Platforma CDP nie jest ustandaryzowana we wspólnej, publicznej specyfikacji, a utrzymanie jej w przeglądarce Firefox wymagało stabilnej komunikacji i wysiłek.
  • W przeglądarce Firefox zaimplementowano tylko podzbiór CDP, dlatego firma Puppeteer nigdy nie mogła zapewnić zgodność pełnego interfejsu API z przeglądarką Firefox, co powoduje zamieszanie.

Cieszymy się, że mogliśmy kontynuować, wraz z Mozillą w ostatnich latach zawsze wiedzieliśmy, że nie jest to trwałe rozwiązanie. Bazując na tym oraz w tym z innymi czołowymi dostawcami przeglądarek i narzędzi, wspólnie stworzyliśmy WebDriver BiDi.

Praca w zespole sprawia, że marzenia się spełniają

Zespół Firefoksa pracował nad wdrożeniem funkcji WebDriver BiDi w przeglądarce Firefox. Jednocześnie zespół Puppeteer rozszerza obsługę WebDriver BiDi w interfejsie Puppeteer API. Celem obu zespołów było Spraw, aby każdy interfejs API był wymagany na potrzeby automatyzacji produkcyjnej jest dostępna dzięki technologii WebDriver BiDi w Puppeteer, co zapewnia obsługę zarówno w Chrome, Firefox.

Udostępniony panel zespołu, w którym widać liczbę testów zdanych zaliczonych w ciągu ostatnich kilku miesięcy.
Udostępniony panel zespołu, w którym widać liczbę testów zdanych zaliczonych w ciągu ostatnich kilku miesięcy.

Dzięki temu użytkownicy Puppeteer mogą wybrać Firefoksa lub Chrome dla swoich automatyzacji, określając klucz konfiguracyjny browser podczas uruchamiania aplikacji Puppeteer instancji.

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();

Więcej informacji na temat nowych funkcji przeglądarki Firefox 129 i sposobu korzystania z funkcji WebDriver w przeglądarce Mozilla BiDi zapoznaj się z odpowiednim postem na blogu Mozilla Hacks.

wsparcie CDP w przyszłości

Poprzedni fragment kodu pokazuje, że automatyzacja Chrome za pomocą WebDriver BiDi z Puppeteer, musisz wyraźnie ustawić protocol jako webDriverBiDi Dzieje się tak dlatego, że w Chrome Puppeteer domyślnie ustawia CDP – aby nie zakłócać obecnej automatyzacji, ale też nadal obsługiwać automatyzacje pod kątem funkcji Chrome.

Obsługa CDP w przeglądarce Firefox została wycofana z przeglądarki Firefox w wersji 129 i które zostaną usunięte z końcem 2024 roku. Jeśli masz już automatyzacje korzystające z obsługi CDP w przeglądarce Firefox, zalecamy przejście na WebDriver BiDi. Jeśli to niemożliwe, skontaktuj się z dev-webdriver@mozilla.org oraz Twój przypadek użycia.