Jak zarządzać oczekiwanymi warunkami w selen

Jak zarządzać oczekiwanymi warunkami w selen

Błędy pojawiają się nieoczekiwanie i mogą zakłócić normalny przepływ wykonania. Jest to coś, z czym każdy programista lub tester napotyka w pewnym momencie podczas kodowania i testowania. Głównym mottem testerów jest debugowanie błędu i rozwiązanie go. W tym artykule zrozumiemy, jakie są wyjątki w Selenium i jak sobie z nimi poradzić. Następnie zobaczymy przegląd hierarchii wyjątku. Porozmawiamy również o rodzajach wyjątków i różnicy między sprawdzonymi i niezaznaczonymi wyjątkami oraz podstawową składnią obsługi.

Co to jest obsługa wyjątków?

Wyjątkiem jest zdarzenie podczas zaprogramowanego wykonywania, które zapobiega przestrzeganiu regularnego przepływu programu. Mówiąc inaczej, wszystko, co powoduje, że twój przypadek testowy zatrzymuje się podczas biegu, jest znane jako wyjątek. Kiedy się zdarzy, aplikacja zatrzymuje się i wytwarza obiekt wyjątku. Po podniesieniu wyjątku program przeszukuje kogoś, kto sobie z tym poradził. Wiele informacji o debugowaniu jest dostarczane przez obiekt wyjątku, w tym hierarchia metod, numer linii, w którym wystąpił wyjątek, rodzaj wyjątku i więcej. W rezultacie zobaczysz różne błędy podczas pracy z selenium Webdriver w zależności od kodu, który piszesz. Czasami ten sam kod działa dobrze, podczas gdy inne nie. Po uruchomieniu skryptów możesz napotkać kilka różnych wyjątków. Dlatego za każdym razem, gdy tworzysz skrypt, starasz się zapewnić najwyższą jakość kodu, więc jeśli wystąpi pierwszy problem, tworzy i rzuca wyjątek i wreszcie go obsługuje.

Hierarchia wyjątków

Wyjątkowe okoliczności powinny zostać złapane przez aplikację użytkownika za pomocą tej klasy. Kolejna gałąź, taka jak błąd, jest używany przez inne systemy środowiska wykonawczego Java do wskazania błędów, które są z nim powiązane. Zasadniczo, zgodnie z wyjątkami, istnieją dwa rodzaje wyjątków: jeden jest sprawdzany, a drugi niezaznaczony. Zobaczmy różnicę między tymi dwoma wyjątkami: sprawdzone i niezaznaczone wyjątki.

Sprawdzony wyjątek oznacza to wyjątek. Niezbędny wyjątek występuje podczas wykonywania, mimo że kompilator zweryfikował go podczas kompilacji. Sprawdzone wyjątki są zasadniczo określane jako wyjątki czasowe, podczas gdy niezaznaczone wyjątki są nazywane wyjątkami czasu wykonawczego. Aby zrozumieć sprawdzony wyjątek, programista powinien obsłużyć ten wyjątek, aby utrzymać normalny przepływ wykonania. Podczas gdy wyjątki czasu wykonawczego można zignorować i nie będzie dużej różnicy w przepływie wykonania programu. Jest to główna różnica między sprawdzonymi i niezaznaczonymi wyjątkami.

Wyjątki klasowe

public static void main (string args [])
próbować

Catch (wyjątek e)

Tak wygląda struktura wyjątku. Tworzysz klasę i piszesz blok próba wewnątrz głównej metody, w której piszesz kod, który może podnieść wyjątek. W bloku połowowym piszesz kod, który musi to wykonać. Kod podnosi wyjątek zawarty w bloku próbnym. Tak więc kod rzuca wyjątek w bloku próbnym. Następnie, aby kontynuować normalny przepływ wykonania, jest on obsługiwany w bloku Catch.

Rodzaje wyjątków w selenium

Istnieją różne rodzaje wyjątków, które są wymienione w następujący sposób:

WebDriveRexception

Jeśli masz zainstalowany sterownik chromu. Ten wyjątek jest podniesiony na kierowcy Firefox Mozilla, który jest kierowcą Geeki.

NosuchelementException

Ten wyjątek jest rzucany, gdy sterownik internetowy nie znajdzie elementu w strukturze perkusyjnej. To znaczy, jeśli nie jesteś w stanie zlokalizować konkretnego elementu, nie mówi takiego wyjątku. To znaczy, jeśli ten element nie jest obecny, to jest powód, dla którego nie rzuca takiego wyjątku.

próbować
kierowca.Get („https: // abc.com/iframe ”);
kierowca.FindElement (przez.id („Timcd”)).sendkeys (… .KeystoSend: „Hello”);
catch (notFoundException e)
system.na zewnątrz.printin („nie znaleziono”);
mi.printStackTrace ();
;

W tym kodzie widzieliśmy wyjątek „nie znalezionego”. Najpierw musisz iść do adresu URL. Następnie przełącz na ramkę, a następnie wpisz coś. Jeśli nie przełączasz się i bezpośrednio wpisujesz w element, pokazuje błąd „nie znalezionego” w elemencie Catch.

NosuchFrameException

Jeśli chcesz wykonać akcję, która przełącza się między ramkami i nie możesz tego zrobić, ponieważ ramka dla dzieci nie jest obecna lub rama nadrzędna nie jest w stanie poruszać się po ramce dla dzieci, w takich przypadkach nie jest podniesiony wyjątek ramy.

NoalertpresentException

Ten błąd pojawia się, gdy próbujemy wykonać funkcję, która jest akceptowana lub odrzucona i nie jest konieczna w potrzebnym miejscu.

Podobnie mamy alert JavaScript. Jeśli nie klikniemy alertu JavaScript, w tym przypadku nie będzie ostrzeżenia. Jeśli spróbujemy zmienić ten alarm, daje to NoalertpresException.

TimeOutexception

Ten wyjątek jest rzucany, gdy polecenie nie wykonuje zadania w danym czasie.

Oto metody obsługi wyjątku z składnią:

Spróbuj: służy do określenia bloku, w którym umieszczamy kod wyjątku.

Próbować
// kod jest napisany tutaj
catch (wyjątek_class_name)

Catch: Ten blok służy do obsługi wyjątku.

próbować
Catch (Nazwa Exception E1)
/// Złap kod blokowy

Rzut: służy to do rzucenia wyjątku.

Catch (wyjątek e)
System.na zewnątrz.println („element nie jest obecny.”);
rzut (e);

Rzuty: służy do deklarowania wyjątku.

public static void main (string [] args)
Rzucania przerywania Exception

Wreszcie: służy do wykonywania kluczowego kodu programu.

próbować
//// krytyczny kod tutaj
Catch (wyjątek E1)
[/// Catch Block Code
Wreszcie
//// ten blok kodu należy wykonać

Metody obsługi wyjątku z kodami

Najpierw tworzymy wyjątkową klasę.

Public Class ExceptionFeEFexample

Najpierw uruchamiamy Chrome Driver, aby uruchomić Google i nawigować po określonej witrynie. Następnie używamy nić do spania do spania przez 3000, czyli trzy milisekundy. Następnie znajdujemy element po nazwie, który jest „fałszywy.Kliknij". Teraz ten element nie jest obecny, więc to, co robi, to wyjątek zwany „No taki element”. Następnie, po uruchomieniu kodu, zobaczymy uruchomionego sterownika Chrome.

WebDriver MyDriver = new Chromedriver ();
mój kierowca.Get (https: // www.Google.com);
Nitka.Sleep (3000);
mój kierowca.FindElement (przez.Imię („fałszywe”)).Kliknij;

Nic się nie wydarzyło, ponieważ wyjątek jest tutaj podniesiony. Jak widzimy, rzuca wyjątek „Nie ma takiego elementu”.

Teraz, aby sobie z tym poradzić, używamy bloku próbowania. W bloku próbuj użyj następującego polecenia:

catch (nosuchelementException e)
System.na zewnątrz.println („element nie jest obecny.”);
System.na zewnątrz.println („hi”);

System.na zewnątrz.println („hi”);

Piszemy kod, który rzuca wyjątek. Ten kod już rzuca wyjątek, że nie można znaleźć takiego elementu. W bloku próbnym piszemy wyjątek „bez takiego elementu”. Wewnątrz drukujemy „Element nie znaleziono” i „Hello”. Ponownie, poza blokiem prób, chcemy sprawdzić, czy normalny przepływ wykonania jest przenoszony, czy nie. Dlatego drukujemy to stwierdzenie poza blokiem. Po uruchomieniu kodu nie rzuca wyjątku. Wydrukuje dwa razy „Hello”: po raz pierwszy jest w bloku połowowym, a drugi raz jest poza blokiem prób i złapania. Aby upewnić się, że normalny przepływ wykonania nie jest przerywany, w ten sposób możemy poradzić sobie z wyjątkami:

W tym przykładzie widzimy niepowodzenie warunków oczekiwanych i jak sobie z tym poradzić.

Lista li;
@Nadpisanie
publiczny void Performas (T -Actor)
li = BrowsetheWeb.jako (aktor).Finadall (przez.xpath („// div [@class = 'Nav-Fill'] // a [@data-csa-c-type = 'link']”));
dla (int i = 0; i
System.na zewnątrz.println („-WebElementFacade Lista nazwy menu ####” +Li.Get (i).getText ());

Po wykonaniu tego kodu otrzymujemy wynik, w którym drukuje wszystkie wartości, ale test zawodzi w oknie wyjściowym.

Teraz naprawimy ten błąd. Jeśli zapętlimy więcej niż jedną wartość przed wydrukowaniem jej wartości, musimy sprawdzić, czy element jest wyświetlany, czy nie, czy wartość jest wyświetlana, czy nie. Następnie możemy wydrukować tę wartość. W takim przypadku piszemy, jeśli „Li. Dostawać.IS ”jest wyświetlany warunek. To ma sprawdzić warunek. Następnie piszemy instrukcję drukowania. Po uruchomieniu kodu odczytuje wszystkie wartości. W rezultacie przechodzimy test. Odczytuje wszystkie wartości, w wyniku czego przechodzimy test.

Wniosek

Rozumiemy oczekiwane warunki w selen. Omówiliśmy również wszystkie sprawdzone i niezaznaczone wyjątki w połowie artykułu. Omówiliśmy rodzaje wyjątków z przykładami. Na koniec omówiliśmy, jak poradzić sobie z wyjątkami za pomocą kodów. Ten artykuł zawiera wszystkie szczegóły dotyczące obsługi selenu i przewidywane okoliczności.