W poprzedniej lekcji przepisaliśmy pierwszą część testu płatności. W tej pokażę Ci jak obsłużyłam wprowadzanie danych karty. A łatwo nie było, bo w naszym wypadku każde pole znajduje się w jakiejś ramce. Dodatkowo, jeżeli pamiętasz z projektu testowego, musimy użyć metody, która wprowadzi dane karty cyferka po cyferce, bo gdy wprowadzamy na raz, zaburzona zostaje kolejność liczb
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.
Różnice w lokatorach
Niektóre atrybuty elementów zmieniły swoje wartości od momentu nagrania tego filmu, więc lokatory mogą się nieznacznie różnić. Zaktualizowane lokatory zobaczysz w kodzie do tego zadania (pod filmem).
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ę.
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ę.
Lista lekcji dotyczących Page Object Model:
Hej,
działam na takim samym kodzie co wyżej i IDE ma problem ze zlokalizowaniem selektora ramki "[name='__privateStripeFrame8']". Uruchamiam test buyWithoutAccountTest (klasa PaymentTests) i test zatrzymuje się po wpisaniu email, czyżby nazwa ramki się zmieniła? lub czy jest jakaś możliwość, że coś tę ramkę przesłania? Dostaje komunikat błędu "org.openqa.selenium.TimeoutException: Expected condition failed: waiting for frame to be available: By.cssSelector: [name='__privateStripeFrame8']".
Halko! A sprawdziłaś? :> Rzeczywiście, zmienił [...] Całość odpowiedzi widoczna dla kursantów.
Tak, sprawdziłam i zbudowałam najwyraźniej błędny lokator :|, a mianowicie "iframe[name='__privateStripeFrame1306']" - mogłabyś napisać, czemu ten twój działa, a mój nie 🙁 ?
Wiesz co, wygląda, że te numery w atrybucie "nam [...] Całość odpowiedzi widoczna dla kursantów.