• Przejdź do głównej nawigacji
  • Przejdź do treści
  • Przejdź do głównego paska bocznego
  • Przejdź do stopki
Testelka.pl

Testelka.pl

Testelka.pl - o technologiach w testowaniu oprogramowania

  • Kursy
    • DARMOWY: Java dla testerów
    • Selenium w Javie
    • Selenium w C#
    • Testy API w REST Assured
    • Selektory CSS
    • XPath
  • Materiały na raz
  • Blog
  • O Eli
  • Zaloguj się
  • DOŁĄCZ

Selenium w C# 71. Jedna metoda, ale dwa typy zwracane

Strona główna > Kursy > Kurs Selenium w C# > Selenium w C# 71. Jedna metoda, ale dwa typy zwracane

W naszych testach pojawi się sytuacja, w której ta sama akcja da inny efekt. W związku z tym przyda nam się jakieś rozwiązanie, które pozwoli zwrócić obiekty jednej z dwóch klas, w zależności od sytuacji. W tym filmie pokażę Ci dwa podejścia do tego problemu.

W naszych testach testujemy zarówno poprawny zakup produktu jak i nieudany, czyli np. wtedy kiedy próbujemy przejść do zakupu nie wprowadzając danych klienta. Oba scenariusze dochodzą do momentu kliknięcia w przycisk zamówienia i oba kończą się innym efektem. W przypadku poprawnego zakupu zostaniemy przeniesieni na stronę potwierdzającą zakup. W przypadku niepoprawnego zakupu zostaniemy na tej samej stronie i dostaniemy komunikaty o konieczności wypełnienia danych.

Oznacza to, że jedna metoda, w naszym wypadku PlaceOrder(), będzie zwracała obiekt klasy ChekoutPage (w przypadku niepoprawnego zakupu) albo obiekt nowej jeszcze nieistniejącej klasy, która będzie reprezentowała stronę podsumowania zamówienia.

Dodatkowe materiały

Do tej lekcji mogą Ci się przydać dodatkowe materiały dotyczące typów generycznych. Znajdziesz je poniżej.

  • Typy generyczne (PL)
  • Generics in .NET (Microsoft Docs)
  • Activator.CreateInstance Method (Microsoft Docs)

Kod

Ukryta treść

Nie masz aktywnej subskrypcji. Wykup subskrypcję albo zaloguj się, by móc zobaczyć pełną lekcję.

Reader Interactions

Komentarze

Nie masz aktywnej subskrypcji. Wykup subskrypcję albo zaloguj się, by móc komentować.

Pierwszy Sidebar

LEKCJE W KURSIE

  • Przygotowanie środowiska (DARMOWA LEKCJA)
  • Konfiguracja: Selenium i ChromeDriver (DARMOWA LEKCJA)
  • Demo Selenium i testowanie asercji (DARMOWA LEKCJA)
  • Nawigacja pomiędzy stronami (DARMOWA LEKCJA)
  • Zamykanie sesji i okna przeglądarki (DARMOWA LEKCJA)
  • Zadanie: zamykanie sesji i okna przeglądarki
  • Źródło strony, url i tytuł
  • Zadanie: źródło i tytuł strony
  • Ustawienia okna przeglądarki
  • Zadanie: ustawienia okna przeglądarki
  • Metody lokalizujące
  • Znaczniki i konsola deweloperska
  • Mechanizmy lokalizujące: nazwa klasy, id, atrybut name, nazwa taga
  • Mechanizmy lokalizujące: szukanie po linku
  • Zadanie: proste lokatory
  • Timeouty
  • Klikanie w elementy i wprowadzanie tekstu
  • Zadanie: testy logowania
  • Zasada DRY (Don't Repeat Yourself)
  • Wgrywanie pliku z dysku
  • Explicit Wait, czyli jawne czekanie
  • ExpectedConditions
  • Pobieranie informacji o elementach: położenie, rozmiar, nazwa taga, czy wyświetlony, czy zaznaczony, czy aktywny
  • Pobieranie informacji o elementach: wartości CSS, atrybuty i właściwości JavaScript oraz szukanie elementów w elemencie
  • Zadanie: informacje o elementach
  • Klikanie oraz przesuwanie kursora myszki
  • Prawy przycisk myszy oraz podwójny klik
  • Akcje na klawiaturze: przytrzymanie klawisza i wprowadzenie tekstu
  • Zadanie: akcje na klawiaturze i gesty myszy
  • Przesuwanie elementów
  • Zadanie: przesuwanie elementów
  • Ramki
  • Zadanie: ramki
  • Wykonywanie skryptów JavaScript
  • Zadanie: JavaScript
  • Ciasteczka: pobieranie ciasteczek
  • Usuwanie i dodawanie ciasteczek w Selenium
  • Co, gdy nie mamy pełnej nazwy ciasteczka?
  • Zadanie: Ciasteczka
  • Wyskakujące okienka (alerty)
  • Zadanie: wyskakujące okienka
  • Praca na kilku oknach przeglądarki
  • Zadanie: praca na kilku oknach przeglądarki
  • Listy rozwijane: pobieranie informacji
  • Listy rozwijane: zaznaczanie i odznaczanie opcji
  • Zadanie: listy rozwijane
  • Zrzuty ekranu
  • Zrzuty ekranu: przykład
  • Inicjalizacja driverów: Chrome, Firefox, Opera, Edge, IE
  • Selenium Grid
  • Selenium Grid: RemoteWebDriver
  • Selenium Grid: konfiguracja
  • Selenium Grid: konfiguracja w plikach JSON
  • Projekt testowy: testy koszyka
  • Projekt testowy: testy płatności
  • Projekt testowy: testy kuponów
  • Wprowadzenie do Page Object Model
  • Pierwszy test w POM
  • Pierwsze klasy Page Object
  • "Chainowanie" metod
  • Czekanie po akcji vs czekanie przed akcją
  • Zadanie: dwa kolejne testy w POM
  • Rozszerzenie metody AddToCart() i przepisanie dwóch kolejnych testów
  • Zadanie: testy koszyka w POM
  • Testy płatności w POM
  • Wydzielenie klas Page Object i referencje do projektów
  • Zadanie: testy płatności w POM
  • BaseTest: bazowa klasa testu
  • CustomAssert: niestandardowe asercje
  • TestHelpers: metody pomocnicze
  • Jedna metoda, ale dwa typy zwracane
  • BasePage: bazowa klasa Page Object
  • Page Object: jeden poziom głębiej
  • Parametryzacja drivera
  • Refaktoring: nowy driver
  • Driver factory
  • Konfiguracja z pliku JSON
  • Deserializacja JSONa
  • Refaktoring: system operacyjny w parametrze drivera i URL strony
  • Dane testowe z pliku JSON
  • Użycie w testach danych testowych z pliku

Footer

Elzbieta Natalia Sadel
Calle Marzo 9 1 D
41009 Sevilla
Hiszpania
NIF: Y7882076J

Zostań trenerem!

Regulamin
Polityka prywatności
Polityka wsparcia w ramach członkostwa

Koszulki i torby dla testerów

Pomoc
Kontakt

Poskładane z 💛 przez Automatela.pl