Implementacja uwierzytelniania Basic Auth
w testach automatycznych opartych o Selenium
była zawsze możliwa, ale wymagała nieco gimnastyki. Selenium 4
wprowadziło ulepszony i prosty sposób na obsługę tego sposobu uwierzytelniania.
Konfiguracja sterownika
Kluczowy w obsłudze Basic Auth
w Selenium 4
jest interfejs HasAuthentication
. Pozwala on na szybkie zarejestrowanie obsługi uwierzytelniania za pomocą metody register
. Istotne jest, aby sterownik, którego używamy w testach, implementował ten interfejs:
1 | var driver = new ChromeDriver(); |
Metoda register
pozawala na zarejestrowanie obiektu Credentials
(implementowanego przez klasę UsernameAndPassword
), który zostanie wykorzystany w przypadku wykrycia konieczności uwierzytelniania. Innymi słowy, jeżeli Selenium
wykryje konieczność uwierzytelniania Basic Auth
dla adresu URL, użyje przekazanego obiektu UsernameAndPassword
:
1 |
|
Jeżeli istnieje konieczność wskazania, dla których adresów URL ma zostać wykonane uwierzytelnianie, należy użyć dwuargumentowej wersji metody register
:
1 | var driver = new ChromeDriver(); |
Po zarejestrowaniu obsługi uwierzytelniania, każde kolejne wywołanie metody driver.get(String url)
wymagającej uwierzytelniania zadziała zgodnie z oczekiwaniami
Podsumowanie
Selenium 4 wprowadził nowy interfejs HasAthentication
, który umożliwia prostą rejestrację obsługi uwierzytelniania typu Basic Auth
oraz Digest
.
Niestety, implementacja ogranicza się aktualnie do jedynie dwóch sterowników, ChromeDriver
i EdgeDriver
, co nie pozwala na wykorzystanie tego sposobu konfiguracji w testach zaimplementowanych w formie przenośnej i możliwej do wykonania na wielu różnych przeglądarkach.
Dokumentacja API
Repozytorium Git projektu
Jeżeli chcesz spróbować swoich sił z Selenium 4
, możesz użyć gotowego szablonu dla projektu, który znajduje się w repozytorium Git
: https://gitlab.com/qalabs/blog/junit5-selenium-gradle-template