WebDriver BiDi – przyszłość automatyzacji w różnych przeglądarkach

W wcześniejszym artykule przyjrzeliśmy się dotychczasowym protokołom automatyzacji WebDriver „Classic” i protokołowi Chrome DevTools Protocol (CDP) oraz ich zaletom i ograniczeniom.

Dołącz do WebDriver BiDi, czyli przyszłość automatyzacji przeglądarek. Jest to nowy standardowy protokół automatyzacji przeglądarek, który jest obecnie w fazie rozwoju. Ma on na celu połączenie najlepszych funkcji WebDriver „Classic” i CDP. WebDriver BiDi obiecuje komunikację dwukierunkową, domyślnie czyniąc ją szybką, a także oferuje szereg funkcji kontroli niskopoziomowej.

WebDriver BiDi
WebDriver „Klasyczny” protokół Chrome DevTools (CDP)
Najlepsza obsługa różnych przeglądarek Szybka, dwukierunkowa komunikacja
Standard W3C Zapewnia kontrolę niskiego poziomu
Stworzone do testowania

Celem WebDriver BiDi jest umożliwienie pisania testów za pomocą dowolnych ulubionych narzędzi i automatyzowanie ich w dowolnej przeglądarce lub sterowniku. Zapewnia to pełną elastyczność.

Wizja WebDriver BiDi.
Wizja WebDriver BiDi

Standaryzacja

WebDriver BiDi znajdująca się grupa robocza to zróżnicowana grupa dostawców przeglądarek, projektów automatyzacji przeglądarek typu open source oraz firm oferujących rozwiązania do automatyzacji przeglądarek. Ta współpraca gwarantuje obiecującą przyszłość w zakresie automatyzacji przeglądarek.

Grupa robocza WebDriver BiDi
Grupa robocza WebDriver BiDi

Większość pracy wykonuje się w tym repozytorium na GitHubie. Odbywają się comiesięczne spotkania ze wszystkimi głównymi dostawcami przeglądarek, którzy informują o rzeczywistych postępach i dyskutują na temat kontrowersyjnych i nieznanych szczegółów. Międzyfirmowa grupa robocza dba o to, aby decyzje były dostosowane do potrzeb wszystkich zainteresowanych osób.

Opracowanie i wdrożenie nowego protokołu to nie lada wyczyn. Wymaga to skoordynowanych wysiłków różnych dostawców współpracujących ze sobą. Proces ten obejmuje:

  • Specification (specyfikacja): prośba o komentarz (RFC) w celu zebrania opinii o ofercie pakietowej.
  • Weryfikacja: seria testów przeprowadzanych na różnych platformach, które służą za źródło informacji we wszystkich implementacjach.
  • Implementacja: przeglądarki implementują protokoły zgodnie ze specyfikacją i przechodzą testy weryfikacyjne.

Wyzwania

W tej części przyjrzymy się wyzwaniom związanym z wdrożeniem funkcji WebDriver BiDi, która ma na celu znalezienie równowagi między zgodnością, użytecznością i łatwością implementacji.

Więcej niż klon CDP: zgodność z różnymi przeglądarkami

CDP wraz z elementami specyficznymi tylko dla Chrome i DevTools nie mogą być replikowane bezpośrednio w specyfikacji WebDriver BiDi. Wdrożenie CDP w takiej postaci nie byłoby możliwe w innych przeglądarkach, ponieważ specyfikacja stanowiłaby jedynie udokumentowanie tego, jak to zrobić.

Zapewnianie małego opóźnienia

Interfejs WebDriver BiDi musi być zaprojektowany tak, aby obsługiwać duże opóźnienia bez uszczerbku dla wydajności. W CDP czas oczekiwania jest niski, ponieważ klient i serwer prawie zawsze działają na tej samej maszynie fizycznej, ale nie w przypadku WebDriver BiDi. W związku z tym funkcja WebDriver BiDi musi zminimalizować liczbę wymaganych cykli wymiany danych między klientem a serwerem.

Priorytetowe traktowanie ergonomii w BDi

Chociaż od programistów nie oczekuje się tworzenia klientów WebDriver BiDi od podstaw, należy unikać nadmiernego komplikowania protokołu. Zbyt złożona architektura BiDi może być nie tylko trudna do wdrożenia, ale też trudna w obsłudze, co utrudnia wdrożenie i wykorzystanie.

Zapewnianie implementacji BiDi

Implementacja WebDriver BiDi musi być realistyczna, uwzględniając ograniczenia różnych przeglądarek. Na przykład przechowywanie wszystkich obiektów JavaScriptu, które kiedykolwiek zostały narażone na kontakt z klientami przez BiDi, może spowodować wyciek pamięci, a brak tych utrudnień utrudnia debugowanie i interakcje z kodem JavaScript strony. Ważne jest, aby znaleźć równowagę, która pozwoli na skuteczną automatyzację przeglądarki bez obniżania wydajności.

Pokonywanie wyzwań

W tej sekcji omówimy strategie zastosowane do rozwiązania problemów z wdrożeniem WebDriver BiDi.

Szybkie tworzenie prototypów

Rozwiązanie problemu związanego z wdrażaniem jest kluczowe dla sukcesu firmy BiDi. Aby przyspieszyć postępy w zakresie specyfikacji i testów, wdrożyliśmy szybkie prototypowanie przy użyciu NodeJS. Dzięki temu możemy nie tylko eksperymentować z różnymi rozwiązaniami, ale także opracowywać testy platformy internetowej.

Projektuj pod kątem wydajności

Ta decyzja projektowa jest uzależniona od wydajności, ponieważ w niektórych przypadkach czas oczekiwania w komponencie WebDriver BiDi jest duży. Na przykład podczas pobierania identyfikatora i wartości obiektu z przeglądarki funkcja WebDriver BiDi wymaga tylko jednej sesji w obie strony, a CDP wymaga 2. Dzieje się tak, ponieważ WebDriver BiDi może zwracać zarówno identyfikator, jak i wartość w pojedynczej odpowiedzi (wynik nie powinien być serializowany w formacie JSON), natomiast CDP musi zwracać je oddzielnie.

Testy platformy internetowej (WPT)

Testy platformy internetowej odgrywają ważną rolę w pracach BiDi. WPT, w przypadku rozwiązań WebDriver „Classic” i WebDriver BiDi, stanowi wiarygodne źródło informacji dla wszystkich implementacji. Testy te są zaprojektowane do wykonywania i przekazywania w różnych implementacjach, co zapewnia spójne wykonywanie protokołów w różnych przeglądarkach, co jest kluczowe dla powodzenia usługi WebDriver BiDi. Sprawdź najnowsze wyniki WPT w panelu.

Jaki jest plan i obecne postępy?

Zapoznaj się z planem rozwoju WebDriver BiDi, aby poznać kierunek rozwoju projektu. Plan jest w trakcie opracowywania i stale się zmienia.

Informacje o stanie implementacji w różnych przeglądarkach znajdziesz w najnowszych Testach platformy internetowej, ponieważ narzędzie to jest źródłem wiarygodnych danych.

Bądź na bieżąco z kamieniami milowymi projektu, aby monitorować jego postęp.

Odkryj osiągnięcia osiągnięte w 2023 roku i bądź na bieżąco z najnowszymi informacjami.

Wsparcie dla WebDriver BiDi: jak możesz pomóc

Czy nie możesz się doczekać przyszłości automatyzacji przeglądarek dzięki funkcji WebDriver BiDi? Oto jak możesz okazać swoje wsparcie:

  • Zostań wczesnym testerem i użytkownikiem, pomagając kształtować przyszłość WebDriver BiDi.
  • Daj znać innym! Udostępnij projekt w mediach społecznościowych, korzystając z hashtagu #WebDriverBiDi.
  • Poproś o pomoc Zgłoś prośbę o dodanie funkcji lub sprawdź za pomocą ulubionych narzędzi plan wdrożenia WebDriverBiDi.
  • Musisz dołączyć do standardu RFC i przesłać swoją opinię na temat interfejsów API.

Najczęstsze pytania

Czy WebDriver BiDi zastąpi protokół Chrome DevTools Protocol (CDP)?

Nie. Przeglądarki oparte na Chromium nadal będą używać CDP do debugowania, a WebDriver BiDi to nowa specyfikacja umożliwiająca testowanie za pomocą bardziej ergonomicznego interfejsu API.

Czy Puppeteer korzysta z CDP, czy to oznacza, że aplikacja Puppeteer zostanie wycofana?

Nie. Jednak rozwiązanie WebDriver BiDi pozwoli Puppeteer stać się narzędziem do automatyzacji w różnych przeglądarkach.

Czy masz ogólnodostępny harmonogram?

Tak, zapoznaj się z naszym planem na GitHub.