Selenium w C# 4. Nawigacja pomiędzy stronami

Interesuje CiÄ™ ten kurs?

Dołącz do listy mailingowej, a poinformuję Cię o otwarciu zapisów.

W tej lekcji poruszymy kolejny temat, a będzie nim nawigacja pomiędzy stronami. Poznamy metody pozwalające na przejście na daną stronę, powrót na poprzednią, przejście naprzód oraz odświeżenie strony.

 

Nawigacja pomiędzy stronami: linki i materiały

Metody nawigacyjne

Metody, o których jest mowa w tej lekcji to:

  • GoToUrl() – ta metoda pozwala nam na przejÅ›cie na podanÄ… stronÄ™; w parametrze możemy podać stringa z adresem strony albo obiektu typu Uri (np. new Uri(„adres jakiejÅ› strony”));
  • Back() – pozwala wrócić na poprzedniÄ… stronÄ™;
  • Forward() – pozwala na przejÅ›cie naprzód (ale musimy mieć coÅ› „naprzód” wiÄ™c musimy siÄ™ wczeÅ›niej cofnąć np. poprzez metodÄ™ Back();
  • Refresh() – odÅ›wieża stronÄ™.

Nawigacja pomiÄ™dzy stronami: klasa Navigation.cs

Poniżej znajdziesz klasę testową, którą posługiwałam się w lekcji.

Ukryta treść

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

Dokumentacja Selenium: linki

Sygnatury wszystkich wyjaÅ›nionych dzisiaj metod znajdujÄ… z w interfejsie INavigation. Ponieważ to interfejs, nie zobaczysz tam implementacji tych metod. Interfejs to raczej coÅ› w rodzaju kontraktu czy umowy mówiÄ…cej o tym jakie metody ma implementować każda klasa implementujÄ…ca ten interfejs. Interfejs ten jest zaimplementowany przez klasÄ™ RemoteNavigator – jak wyglÄ…da ta klasa i omówione metody możesz podejrzeć tutaj.

Wsparcie merytoryczne

Nie masz aktywnego członkostwa. Wykup dostęp albo Zaloguj się, by móc zadawać pytania.

  1. Po utworzeniu projektu w sekcji, gdzie sÄ… using tworzÄ… mi siÄ™ takie rzeczy:

    using System;
    using System.Collections.Generic;
    using System.Text;

    U Ciebie są inne. Czy Ty dodajesz sobie je ręcznie czy one tworzą się automatycznie?

    Odpowiedz
  2. Dziękuję. Rzeczywiście aktualizuje się ta sekcja jak dopisuje nowe linijki kodu. Tylko dobrze by było dodać info dlaczego akurat to się aktualizuje i po czym:)

    Odpowiedz
  3. Dzięki, własnie zanim przeczytałam Twoją odpowiedź udało mi się wygooglować co dodać:)
    Problem był taki, że alt+enter nie wyszukiwał podpowiedzi (mielił tylko i nic nie pokazywał), ale nie wiem czy to nie był problem z moim VS po ostatniej aktualizacji. Przeinstalowałam i jest ok 🙂

    Odpowiedz
  4. Hej - przy ostatnim teście (RefreshTest), wyskakuje mi taka informacja: OpenQA.Selenium.WebDriverTimeoutException: 'timeout
    (Session info: chrome=79.0.3945.130)' - czy wiesz, jak można z tym sobie poradzić? 🙂

    Odpowiedz
  5. Utworzyłam klasę z domyślną nazwą Class1, ręcznie zmieniłam nazwę na Navigation i usunęłam private z tej klasy. Nazwa pliku to nadal Class1.cs, choć próbowałam zrobić rename, ale opcja "rename file name" była nieedytowalna.

    Może to detal, ale zastanawiam się czemu VSC nie pozwala mi zrenamować nazwy pliku i czemu w drzewku plików Navigation jest niżej w hierarchii niż Class1.cs:

    https://snipboard.io/GFiN6l.jpg

    Odpowiedz
  6. Cześć czy można coś z tym zrobić?
    IWebDriver driver;
    driver jest podkreślone i informuje mnie
    CS8618 Non-nullable field 'driver' must contain a non-null value when exiting constructor. Consider declaring the field as nullable.

    Odpowiedz