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 80. Zadanie z POM: przepisanie testu płatności bez zakładania konta cz. 1

W tej lekcji kolejne zadanie z POM: przepisanie testu płatności dla użytkownika, który nie ma i nie chce zakładać konta. Mimo tego, że do przepisania jest tylko jeden test, to będzie sporo do zrobienia – stworzymy nowe klasy PageObject oraz przepiszemy jedną dużą metodę z mnóstwem parametrów na kilka mniejszych, co zwiększy czytelność naszego kodu.

Na początku filmu tłumaczę polecenie, a następnie rozwiązanie. Będzie moment, żeby zatrzymać film na czas wykonania zadania – dam znać w filmie kiedy.

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

Twoje klasy po tym zadaniu powinny wyglądać jak poniżej

Lepiej nie podglądać przed rozwiązaniem zadania ⚠️

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ę.

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.

  1. Czesc, szybkie pytanko,
    Czy skoro klasa BasePage jest abstrakcyjna, to dlaczego BaseTest nie jest abstrakcyjna ?
    Wydaje mi się, że ich ogólne zastosowanie jest niemal identyczne, więc nic nie stoi na przeszkodzie, aby BaseTest również była abstrakcyjna, popraw mnie proszę jeżeli się myle.

    Pozdrawiam

    Odpowiedz
  2. Hejo 🙂 Mam pytanie do metody "chooseCountry". Zrobiłam ją w trochę inny sposób i chciałam zapytać, czy takie rozwiązanie jest OK, albo czy jest w jakiś sposób "ułomne" z punktu widzenia dobrych testów. 😉
    Wydaje mi się, że Twoje rozwiązanie bardziej naśladuje kroki człowieka, klika się "fizycznie" w strzałkę do rozwinięcia listy, a u mnie wybiera się od razu element i przez to moje rozwiązanie nie jest do końca poprawne?

    private By countrySelectionDropdownLocator = By.id("billing_country");

    public CheckoutPage chooseCountry(String countryCode) {
    WebElement countrySelectionDropdown = driver.findElement(countrySelectionDropdownLocator);
    Select country = new Select(countrySelectionDropdown);
    country.selectByValue(countryCode);
    return this;
    }

    Odpowiedz