W tym filmie pokażę Ci co potrafi plugin do Selenium w IntelliJ. Plugin Selenium UI Automation Testing można sobie doinstalować do IntelliJ Ultimate od wersji 2020.1. Co prawda IntelliJ Ultimate nie jest darmowe, ale w ramach członkostwa na Testelka.pl, możesz otrzymać licencję na jedno z narzędzi od JetBrains na 6 miesięcy, min. właśnie na IntelliJ IDEA Ultimate.
Plugin do Selenium w IntelliJ: co zobaczysz w filmie?
Konfiguracja projektu
Z fajnych rzeczy, szczególnie jeżeli budujecie sporo nowych projektów opartych na Selenium, jest możliwość stworzenia sobie projektu Selenium. Najpierw możemy dokonać wyboru pomiędzy Gradle a Mavenem oraz JUnit a TestNG. Następnie możemy zaznaczyć checkboxy obok bibliotek, których chcemy użyć w naszym projekcie. Dzięki temu nie musimy już wprowadzać popularnych zależności np. do POM.xml. Wśród bibliotek i frameworków, które możemy szybko zaznaczyć znajdziesz:
- Allure Framework
- Selenide
- Serenity BDD
- WebDriverManager
- Harmcrest
- AssertJ
Lokatory
Nowość, którą wprowadza omawiany plugin do Selenium w IntelliJ to kolorowanie i podstawowa walidacja składni lokatorów. Może się to przydać szczególnie w selektorach CSS i XPathach, które teraz są czytelniejsze. Dostaniemy np. informację, gdy pominiemy nawias kwadratowy w selektorach CSS albo nazwę taga (albo gwiazdkę) w XPathie. Co ciekawe, budując sobie XPatha w oparciu o jakąś funkcję, dostaniemy podpowiedzi jeżeli chodzi o parametry tej funkcji.
Wsparcie dla tagów HTML, atrybutów i wartości CSS
W trakcie np. budowania selektorów CSS dostaniemy także podpowiedzi dotyczące tagów HTML. Ale to nie jedyne podpowiedzi dotyczące informacji na temat elementu na stronie, jakie możemy dostać. W Selenium możemy skorzystać z metody getAtttribute oraz getCSSValue na elemencie i w parametrze tej metody również otrzymamy podpowiedzi dotyczące właśnie atrybutów elementu oraz wartości CSS. Pokazuję to dokładniej na filmie.
Podpowiadanie składni JavaScript
W Selenium, gdy już wszystko inne zawiedzie, możemy użyć JavaScriptExecutora, który pozwoli na odpalenie kawałka kodu JavaScript na naszej stronie. Kod JavaScript wprowadzamy jako parametr do metody w postaci zwykłego stringa. Omawiany plugin pozwoli na podpowiadanie składni JavaScript w parametrze metody np. executeScript() oraz jej kolorowanie dla lepszej czytelności.
Selenium Grid: pliki konfiguracyjne
Jeżeli korzystacie z Selenium Grid i przechowujecie konfigurację huba i node’a w kodzie, gdzieś w Waszym projekcie testowym, to plugin do Selenium w IntelliJ ma także tutaj dla Was coś ciekawego. Jeżeli stworzycie sobie pliki hubConfig.json oraz nodeConfig.json to zostaną one rozpoznane jako pliki konfiguracyjne związane z Selenium o czym powie nam charakterystyczna zielona ikonka Selenium.
Po przejściu do tych plików dostaniemy podpowiedzi na temat tego, co możemy wrzucić do tych plików. Dostaniemy także podstawową walidację na wartościach, np. port musimy podać jako liczbę, jeżeli wrzucimy go w cudzysłowy otrzymamy informację o niekompatybilnych typach.
Link do buga/ticketa/issue w kodzie testów
W Allure za pomocą adnotacji @Issue, mogliśmy podać np. numer issue w Jirze związanego z danym testem. Jednak nigdy nie działał on w naszych testach jako aktywny link. Teraz możemy przejść do danego issue klikając na jego numer bezpośrednio z kodu naszych testów. Zgodnie z tym co twierdzi JetBrains, podobnie ma to zadziałać z Serenity BDD.
Jeżeli chcesz zobaczyć wszystkie nowości jakie wprowadza ten plugin, odsyłam do artykułu na blogu JetBrains, na którym znajdziesz krótki opis każdej z nich.