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Ä™.
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.
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?
Zobacz sobie 00:30 - też je mam. Nie dodaję ich [...] Całość odpowiedzi widoczna dla kursantów.
Hej,
Kiedy wpisuje Thread.Sleep(5000); dostaję informację, że Thread does not exist in the current context.
Masz może pomysł co może być przyczyną?
PokazujÄ™ w
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:)
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 🙂
Super, dobrze, że zadziałało! [...] Całość odpowiedzi widoczna dla kursantów.
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ć? 🙂
Jeżeli masz kod dokładnie taki jak ja, to sprób [...] Całość odpowiedzi widoczna dla kursantów.
Tak, rzeczywiście zapomniałam o timeoutach pod setupem 😀 Zwiększyłam i działa, dziękuję! 😀
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
Halko! A gdzie próbujesz zmienić nazwę? Co się [...] Całość odpowiedzi widoczna dla kursantów.
Hej, rename z poziomu Solution Explorer faktycznie działa. Wcześniej próbowałam zrobić rename nazwy klasy w pliku i myślałam, że to działa też w tę stronę, tzn. że wtedy zmieni się nazwa całego pliku, ale widocznie tak się nie da.
Niestety takie mądre to to nie jest 😀 [...] Całość odpowiedzi widoczna dla kursantów.
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.
Jeżeli nie chcesz, żeby Ci podkreślało, to moŠ[...] Całość odpowiedzi widoczna dla kursantów.