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ć:

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ć! 🙌