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 76. Page Object Model: refaktoryzacja i nowa metoda w klasie CartPage

W tej lekcji zrobimy sobie mały refaktor, który przygotuje nas do następnej lekcji. Dodamy nową metodę do klasy CartPage, która zastąpi inną, która tam już jest.

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

Zmiana metody wynika z kilku rzeczy. Po pierwsze: dotychczasowa metoda ma nazwę, z której nie do końca wiadomo co robi. A po drugie, robi coś trochę na opak i zwraca trochę inną informację niż tą, którą potrzebujemy w teście. Ponieważ w kolejnej lekcji w tej klasie dojdzie nowa metoda, trzeba tam trochę posprzątać, żeby się nie pogubić.

Zaktualizowane klasy

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

Bazowa 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: 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: 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: 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: BasePage

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. Cześć,
    Przerabiam moje testy na POM i mam wątpliwość czy poprawne jest podejście, gdy w metodzie testowej:
    1. Tworzę obiekty z kilku klas (np. MainPage oraz CartPage)
    2. Metodę do asercji umieszczam w CartPage, natomiast w CartTests tylko ją wywołuję
    Testy działają, natomiast zastanawia mnie czy to jest zgodne z Page Object Model i co sądzisz o takim rozwiązaniu.

     
    @Test 
        public void addTripToCartFromProductPage() {
            MainPage mainPage = new MainPage(driver);
            CartPage cartPage = new CartPage(driver);
            mainPage.closeCacheBar();
            mainPage.selectCategoryWindsurfing().selectEgiptElGuona().addToCart().viewCart();
            cartPage.assertTrueTripAddedToCart();
        }
        @Test 
        public void addTenTripToCartFromTwoCategories(){
            MainPage mainPage = new MainPage(driver);
            CategoryPage categoryPage = new CategoryPage(driver);
            CartPage cartPage = new CartPage(driver);
    
            mainPage.closeCacheBar();
            mainPage.selectCategoryWindsurfing().addAllProductsFromCategory();
            driver.navigate().back();
            mainPage.selectCategoryClimbing().addToCartIslandPeakClimbing(4);
            categoryPage.header.viewYourCart();
            Assertions.assertEquals(10, cartPage.productQuantityInCart());    }
     
    Odpowiedz