WebDriver API
jest protokołem definiującym niezależny od technologii interfejs do kontrolowania przeglądarek. Producenci popularnych przeglądarek często dostarczają własną implementację WebDriver API
, nazywaną sterownikiem (ang. driver), która do komunikacji z przeglądarką używa API
dostarczonego przez jej producenta. Przykładami takich sterowników są geckodriver
dla Mozilla Firefox
oraz chromedriver
dla Google Chrome
.
Manualne zarządzanie wersjami sterowników w projektach jest czasochłonne i podatne na błędy, dlatego też zalecam używanie narzędzi automatyzujących ten proces. Najpopularniejszym narzędziem wykorzystywanym w projektach opartych o technologię Java
jest WebDriverManager
- biblioteka umożliwiająca automatyczne zarządzanie binariami sterowników wymaganymi przez Selenium WebDriver
.
Działanie WebDriverManager
Biblioteka WebDriverManager
rozwiązuje problem zarządzania sterownikami do przeglądarek poprzez automatyczne wykonanie następujących kroków:
- Sprawdzenie wersji zainstalowanej przeglądarki
- Znalezienie właściwej wersji sterownika dla zainstalowanej przeglądarki
- Pobranie sterownika i zapisanie go w lokalnym katalogu
- Eksport zmiennych środowiskowych wykorzystywanych przez
Selenium
W wyniku tego otrzymujemy środowisko, które jest prawidłowo skonfigurowane i gotowe do automatycznego kontrolowania przeglądarki. Jak więc skorzystać z tej metody?
Dodanie zależności do projektu
Bibliotekę WebDriverManager
znajdziesz w centralnym repozytorium Maven, dzieki czemu możesz ją wykorzystać jako zależność w projektach opartych zarówno o Maven
, jak i Gradle
.
Dla projektu wykorzystującego Gradle
, do pliku build.gradle
dodaj zależność:
1 | dependencies { |
Kompletny plik konfiguracyjny, z zależnościami JUnit 5
, Selenium
oraz WebDriverManager
, będzie wówczas wyglądał następująco:
1 | apply plugin: 'java' |
Tip: Aby łatwo skonfigurować środowisko do tworzenia testów w technologii
Java
z wykorzystaniemJUnit 5
orazSelenium
, możesz skorzystać z naszych artykułów zawierających instrukcje dla systemu Windows: https://blog.qalabs.pl/java/przygotowanie-srodowiska/ oraz macOS: https://blog.qalabs.pl/narzedzia/java-selenium-macos/
Podstawowe wykorzystanie biblioteki w testach
Automatyczne zarządzanie sterownikami przeglądarek jest możliwe przy pomocy statycznych metod klasy WebDriverManager
, które pozwalają skonfigurować wspierany przez bibliotekę sterownik:
1 | WebDriverManager.chromedriver().setup(); |
Można również zastosować bardziej ogólne rozwiązanie i sparametryzować typ przeglądarki:
1 | WebDriverManager.getInstance(DriverManagerType.CHROME).setup() |
WebDriverManager
umożliwia zarządzenie sterownikami do przeglądarek Chrome, Firefox, Opera, PhantomJS, Microsoft Edge oraz Internet Explorer.
Przykładowy test wykorzystujący WebDriverManager
jest następujący:
1 | class WebDriverManagerTest { |
Podsumowanie
WebDriverManager
jest biblioteką, która rozwiązuje problem poprawnej konfiguracji środowiska dla testów z użyciem Selenium WebDriver
. Ułatwia ona znacząco tworzenie jak i uruchamianie testów w różnych systemach operacyjnych, z użyciem przeglądarek (i sterowników) w różnych wersjach.
Zobacz również
- Gotowy do użycia szablon projektu
JUnit 5
,Selenium
,WebDriverManager
zGradle
- https://gitlab.com/qalabs/blog/junit5-selenium-gradle-template - Strona projektu
WebDriverManager
- https://github.com/bonigarcia/webdrivermanager - Strona projektu
Selenium Jupiter
, rozszerzenia dedykowanegoJUnit 5
- https://github.com/bonigarcia/selenium-jupiter - Artykuły o konfiguracji środowiska do tworzenia testów w technologii
Java
w systemie Windows: https://blog.qalabs.pl/java/przygotowanie-srodowiska/ oraz w systemie macOS: https://blog.qalabs.pl/narzedzia/java-selenium-macos/