Zapisy otwarte! Dołącz do kursu Selenium w Javie lub Selenium w C#. Tylko do 23.09.2021 do godz. 21:00. Zapisz się tutaj.

Selenium 82. Page Object Model: DriverFactory

Po fali zadań z obszaru Page Object Model, czas na coś nowego. W tej lekcji pokażę Wam jak zbudować klasę DriverFactory. Obiektu tej klasy będziemy używać, do tworzenia drivera o różnej konfiguracji w zależności od parametru.

Uwaga: plik z projektem testowym, na którym pracujemy w lekcjach dotyczących POM wymaga uzyskania dostępu. Dostaniesz go tutaj.

W filmie wspominam o lekcji dotyczącej inicjalizowania RemoteWebDrivera oraz lekcji dotyczącej Selenium Grid. Jeżeli nie wszystko w bieżącej lekcji wydaje Ci się zrozumiałe, być może warto wrócić właśnie do tych dwóch tematów.

Odniosę się jeszcze do tego jak wygląda klasa BaseTest po wprowadzeniu nowej klasy i zmian z nią związanych. Metoda testSetUp(), która jest oznaczona jako BeforeEach może nam rzucić teraz wyjątkiem. Jest to konsekwencją tego, jak stworzona jest metoda create() w klasie DriverFactory. Zwykle unikam rzucania wyjątkami w testach używając bloku try catch. Robię to dlatego, że jeżeli wyjątek zostanie rzucony w teście, to wykonanie kodu się zatrzyma i nie wykona się np. metoda oznaczona jako AfterEach, czyli np. nie „ubijemy” drivera i przeglądarka się nie zamknie, zostawiając nam bałagan.

W metodzie testSetUp() pozwalamy jednak na rzucenie wyjątku. Robimy tak dlatego, że jeżeli na tym etapie, czyli na etapie tworzenia drivera, coś pójdzie nie tak (konkretnie chodzi o jakiś błąd w adresie URL, który podajemy jako parametr tworząc obiekt RemoteWebDriver) i wykonanie kodu się zatrzyma, to w przypadku naszych testów nic nie musimy sprzątać. Nie ma przeglądarki do ubicia i w AfterEach nie robimy nic, co powinno zostać wykonane po teście, który nam nie odpali przeglądarki. Weź pod uwagę, że jeżeli w swoich testach będziesz chcieć wykonać akcje w AfterEach, to taki wyjątek musisz przechwycić i obsłużyć.

Zaktualizowane klasy

Klasa testowa: PaymentsTests

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Klasa testowa: CartTests

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Klasa testowa: BaseTest

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Klasa Page Object: CheckoutPage

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Klasa Page Object: CartPage

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Klasa Page Object: ProductPage

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Klasa Page Object: CategoryPage

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Klasa Page Object: BasePage

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Klasa Page Object: DemoFooterPage (czyli nasza stopka w POM)

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Klasa Page Object: HeaderPage

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Klasa Page Object: OrderReceivedPage

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Klasa: DriverFactory

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Enum: Browser

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Lista lekcji dotyczących Page Object Model:

Wsparcie merytoryczne

Nie masz dostępu do wsparcia merytorycznego dla tego kursu. Wykup dostęp albo zaloguj się, by móc zadawać pytania.