Firefox traci dostęp przez CDP
W bibliotekach Pythona, .NET i Ruby zablokowano dostęp do Firefoxa przez CDP (Chrome DevTools Protocol). Osoby korzystające z tego protokołu do sterowania Firefoxem (wprost lub za pośrednictwem innych narzędzi) muszą przejść na BiDi. Taka zmiana była tylko kwestią czasu. Selenium od dawna deklarowało, że to BiDi, a nie CDP, będzie jednolitym standardem dla każdej przeglądarki. Z tą wersją zasada ta staje się twardą regułą, przynajmniej w przypadku Firefoxa.
Dalsza unifikacja BiDi
Warstwa BiDi w kolejnych bibliotekach coraz mocniej opiera się na wspólnym schemacie protokołu. W tej wersji dołącza do nich Ruby – generuje akcesory typów, fabryki wariantów i typowane błędy bezpośrednio ze schematu, tak jak wcześniej JavaScript. Do Ruby trafia też walidacja komunikatów BiDi oraz wsparcie dla Safari Preview.
W Javie usunięto zbędne śledzenie zakresu subskrypcji i naprawiono inicjalizację BiDi dla RemoteWebDrivera tworzonego przez builder. Z kolei w .NET fabryki transportu BiDi stały się komponowalne, wyeliminowano nadmiarowy timeout w opcjach poleceń i usunięto zbędne ostrzeżenia pojawiające się przy braku subskrybentów.
Poprawki w poszczególnych bibliotekach
W Javie rozwiązano problem z escapowaniem znaków spoza ASCII na początku identyfikatora w By.className() i By.id(). Usunięto też podwójne formatowanie tekstu w By.name(), które powodowało błędy przy nazwach ze znakiem %. Java, JavaScript, Ruby i .NET pozbyły się przestarzałej obsługi proxy FTP oraz nieregularnego kodu do nieprawidłowych profili Firefoxa.
W Pythonie poprawiono dopasowywanie wartości no_proxy – puste wpisy i dopasowania częściowe nie pozwolą już na nieuprawnione ominięcie proxy. Podpowiedzi typów dla find_element i find_elements akceptują teraz typ By, a zasoby procesu potomnego sterownika są prawidłowo zwalniane po zakończeniu pracy.
Zmiany w Selenium Grid
Nagrania wideo z Dynamic Grid trafiają od teraz do osobnego podfolderu przypisanego do konkretnej sesji. Dotyczy to także uruchomień na Kubernetesie, gdzie wcześniej trzeba było czekać na start poda, aby przenieść pliki we właściwe miejsce. Node na Kubernetesie dziedziczy kontekst bezpieczeństwa (securityContext) po kontenerze poda, z kolei Grid honoruje adres se:remoteUrl przekazany przez klienta, o ile prowadzi on do faktycznie dostępnego adresu BiDi, CDP lub VNC.
Selenium Manager i infrastruktura
Selenium Manager otrzymał kilka istotnych poprawek. Uwzględnia teraz opcję wersji przeglądarki przy wyszukiwaniu sterownika dla Electrona, odnajduje Chrome’a oraz Edge’a w domyślnych ścieżkach systemowych i nie tworzy też pustych wpisów w pamięci podręcznej, gdy ustalenie wersji sterownika się nie powiedzie.
Są też nowości organizacyjne. Opublikowano kartę wydania Selenium 5 oraz opis granic implementacji BiDi. To pierwsze oficjalne zapowiedzi kierunku, w którym zmierza nadchodząca główna wersja.
Docker Selenium
W obrazach Google Chrome pojawiła się obsługa architektury linux/arm64, przy czym wydania deweloperskie i beta zarezerwowano wyłącznie dla linux/amd64. Przy wdrażaniu na Kubernetesie wprowadzono zewnętrzny mechanizm skalowania KEDA jako opcję domyślną, co umożliwia powiązanie liczby replik komponentów rozproszonych z danymi pochodzącymi z zewnętrznego magazynu.
Szukasz szkolenia z narzędzia Selenium?
Sprawdź nasz kalendarz szkoleń!
Redakcja testerzy.pl