Selenium 4.47. Nowa wersja

Selenium 4.47. Nowa wersja
Rzadko która aktualizacja przynosi przełom w pisaniu testów. Nowa wersja Selenium to przede wszystkim porządki – w protokole BiDi, w bindingach dla poszczególnych języków i w obsłudze Grida. Projekt podtrzymuje obrany kurs: BiDi ma być jednolitym protokołem dla wszystkich przeglądarek, a CDP powoli odchodzi do lamusa.

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ń!

W Selenium 4.47 zablokowano dostęp do Firefoksa przez CDP. Jak ta zmiana wpływa na Twoje obecne projekty?
W Selenium 4.47 zablokowano dostęp do Firefoksa przez CDP. Jak ta zmiana wpływa na Twoje obecne projekty?
0 %
Nie wpływa – już od dawna korzystamy z protokołu BiDi lub standardowego W3C WebDrivera.
0 %
Wymaga od nas szybkiej migracji i dostosowania istniejących skryptów.
0 %
Zostajemy na starszej wersji Selenium, dopóki nie przejdziemy na BiDi.
100 %
Nie używamy Firefoksa w naszych zestawach testów automatycznych.
0 %
Dopiero analizujemy wpływ tej zmiany na naszą infrastrukturę.
Łącznie głosów: 4
Źródła:
https://www.selenium.dev/blog/2026/selenium-4-47-released/

To powinno Cię zainteresować