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