Selenium WebDriver – prosta nawigacja w przeglądarce

W dzisiejszym artykule pokażę jak możemy poruszać się po stronach internetowych – programując w Javie z wykorzystaniem Selenium WebDriver. Jest to bardzo prosty temat, niemniej jednak fundamentalny i wykorzystywany w większości testów (w końcu testując np. strony www, musimy wiedzieć jak się po nich poruszać). Aby przedstawić temat całościowo, postanowiłem napisać, krótki kod w którym pokażę podstawową nawigację po stronach www. Następnie najważniejsze linijki szerzej skomentuję i wyjaśnię. Pokażę też różne podejścia do nawigacji.

 

Zaczynamy!

 

Linia po linii:

Tłumaczenie zacznę od poniższej linii, ponieważ wszystkie instrukcje zawarte powyżej – dokładnie opisałem we wcześniejszym artykule.

 

Pierwszą poznaną instrukcją nawigacyjną jest navigate().to()

Instrukcja ta – to nic innego, jak otwarcie/przejście do konkretnej strony internetowej – adres strony przekazujemy jako argument w funkcji to().

Kolejne dwie linie to pobranie tytułu strony oraz jej adresu URL (adres URL – Uniform Resource Locator – to adres zasobów dostępnych w Internecie w naszym wypadku jest to adres strony www np. http://www.phptravels.net)  i wypisanie tych informacji w konsoli.

 

Jednak, aby poruszać się po różnych witrynach internetowych, nie musimy znać adresu każdej z nich.

Możemy np. kliknąć bezpośrednio w jakiś link widoczny na stronie bądź tak jak w instrukcji poniżej, kliknąć w odpowiednią pozycję menu. Poniższe instrukcje przeniosą nas na stronę z możliwością wypożyczania samochodu – jest to podstrona głównego serwisu www.phptravels.net

 

Instrukcja  Thread.sleep() – jest to instrukcja, dotycząca czasu ładowania strony www. O funkcjach odpowiedzialnych za oczekiwanie na ładowanie elementów na stronie, opowiem dokładnie w osobnym materiale, gdzie przedstawię sposoby realizacji tego zadnia, m.in. ImplicitlyWait  czy ExplicitWait. W tym miejscu zaznaczę tylko tyle, że instrukcja Thread.sleep() została zastosowana jedynie na potrzeby powyższego testu – nie jest to jednak właściwe rozwiązanie – instrukcji tej raczej nie powinniśmy stosować w profesjonalnych kodach testów automatycznych. Dlaczego więc wykorzystałem ją w kodzie?? Jedynie po to, aby nie zaciemniać  obrazu tych informacji, które w dzisiejszym materiale są najważniejsze i tego na czym się aktualnie skupiamy.  Stosując powyższą instrukcję, zależy mi tylko na tym aby wszystkie elementy strony miały wystarczająco czasu aby się prawidłowy załadować – zmniejszy to ryzyko przypadkowych błędów spowodowanych np. nieznalezieniem elementu na stronie.

 

Następnie powtarzamy linię opisaną już wyżej. Będziemy ją powtarzać po każdej instrukcji zmieniającej adres strony www, tak aby przekonać się na koniec testu czy faktycznie adresy zostały prawidłowo zmieniane. Oczywiście odpalając test będziemy śledzić przeglądarkę internetową i na żywo zobaczymy zmieniające się witryny, ale informacje z konsoli będą dla nas dokładnym podsumowanie testu.

 

Następna instrukcja nawigacyjna. Efekt jaki daje to cofnięcie do poprzedniej strony/podstrony którą ostatnio odwiedzaliśmy.

 

Nie trudno się więc domyślić co robi kolejna instrukcja:

 

Tak, masz rację!! Przenosi użytkownika do strony którą odwiedził i z której się już cofnął. Jest to po prostu efekt dokładnie odwrotny do instrukcji driver.navigate().back();

 

Lokalizujemy logo ( u nas element graficzny )    

 

Dobrą praktyką deweloperów zajmujących się UI – jest sytuacja w której po kliknięciu loga na dowolnej podstronie serwisu, użytkownik zostaje przeniesiony na główną stronę serwisu.

Tak również jest w naszym przykładzie. Wobec czego po wykonaniu poniższych instrukcji, użytkownik powinien zostać przeniesiony na główna stronę.

 

Popularna instrukcja “Odśwież” – czyli odświeżanie strony , manualnie możemy ten efekt uzyskać wciskając w przeglądarce klawisz (F5). Po wykonaniu instrukcji użytkownik pozostaje na aktualnej stronie.

 

Jak trafnie pewnie zauważyłeś, po każdej instrukcji nawigacyjnej, zmianie strony, czy odświeżeniu strony – wypisywałem na ekranie tytuł  oraz adres URL strony na której przebywamy. Możemy teraz przekonać się (oprócz wizualizacji wykonanej w przeglądarce ), że na etapie całego testu, cały nasz kod oraz poszczególne instrukcje szczególnie instrukcje nawigacji – zadziałały prawidłowo a my już wiemy jak i do czego je stosować.

 

Końcowy wynik kodu:

 

6 myśli na “Selenium WebDriver – prosta nawigacja w przeglądarce”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *