Strona główna > Selenium Manager: nowy ficzer w Selenium

Selenium Manager: nowy ficzer w Selenium

java.lang.IllegalStateException: The path to the driver… A w sumie już nic.

Pierwsze doświadczenia z Selenium większości ludzi kończą się komunikatem o błędzie, który umieściłam wyżej – tuż pod tytułem artykułu. Jeśli jesteś szczęściarzem, który tego błędu nie uświadczył (lub zdążyłeś już o nim zapomnieć 😉), jego pełna treść wygląda następująco:

Co on właściwie oznacza? Już tłumaczę!

Do tej pory, żeby Twoje testy napisane w Selenium uruchomiły się poprawnie, musiałeś zadbać o pewną, istotną rzecz: o drivera.

Jeśli jeszcze nie miałeś okazji uruchomić swojego pierwszego testu, a oglądając tutoriale zastanawiałeś się, co to w ogóle ten driver jest i do czego właściwie służy, już spieszę z wyjaśnieniem!

Słowo driver może oznaczać dwie rzeczy:

  • Obiekt w Selenium, jak na obrazku poniżej:

Ten obiekt klasy implementujący interfejs WebDriver pozwala Ci korzystać z Selenium w testach i daje możliwość komunikowania się z przeglądarką – na przykład poprzez get() , które pozwala nam przejść do wybranej strony, w tym przykładzie na adres http://localhost:8080/ . Należy pamiętać, żeby stworzyć obiekt takiej klasy, jakiego drivera będziemy używać – w przykładzie został użyty ChromeDriver() , ale jeśli będziesz korzystać z innej przeglądarki, np. z Firefoxa, użyjesz FirefoxDriver().

  • Drugie znaczenie to plik, osobny dla każdej przeglądarki, który musi znaleźć się gdzieś na Twoim komputerze, by Selenium mogło przeglądarką sterować:
Pobrany plik Chromedrivera

Taki plik należy wygooglować i pobrać, w odpowiedniej wersji dla swojej przeglądarki i systemu operacyjnego, a potem go wskazać, żeby Selenium wiedziało, gdzie plik się znajduje.

Nieco skomplikowane? Owszem. 😉

Żeby nieco uprościć życie automatykom testów, powstała biblioteka WebDriverManager, która automatycznie pobiera odpowiedniego drivera:

Na szczęście już nie musisz zawracać sobie głowy żadnym z powyższych rozwiązań. Otóż, pojawiło się nowe wydanie Selenium w wersji 4.6.0, które posiada implementację Selenium Managera. Teraz odpowiedni driver, pasujący do naszej przeglądarki i systemu, zostanie pobrany automatycznie, co znacznie upraszcza konfigurację środowiska. W momencie pisania tego artykułu istnieje już Selenium w wersji 4.7.2, a żeby skorzystać z możliwości Selenium Managera, jedyne co wystarczy zrobić to zainstalować przeglądarki Chrome’a, Firefoxa i Edge’a. Driver zostanie pobrany dla każdej z tych przeglądarek. Co ciekawe, ta funkcjonalność nadal będzie rozwijana i być może już w niedalekiej przyszłości ręczna instalacja przeglądarek nie będzie potrzebna – przynajmniej taki jest plan, za którego realizację mocno trzymam kciuki!

Przejdźmy jednak do naszej wisienki na torcie – jak w Selenium 4 stworzyć drivera i przejść na wybraną stronę? W końcu mamy tam tyle zmian, że pewnie i kod wygląda inaczej. Zobacz:

Kod robi się coraz krótszy – w Selenium 4 nie musisz już podawać ścieżki do pliku drivera jak w pierwszym przykładzie:

System.setProperty("webdriver.chrome.driver","src/main/resources/chromedriver.exe");

Ani instalować WebDriverManagera, jak w drugim przykładzie:

import io.github.bonigarcia.wdm.WebDriverManager;
WebDriverManager.chromedriver().setup();

Proste, łatwe i przyjemne! Jak całe programowanie. 😉 Co myślisz o wprowadzonych zmianach? Daj znać! 🙌