Fehler kommen unerwartet und können den normalen Ausführungsfluss stören. Dies ist etwas, das jeder Programmierer oder Tester an der einen oder anderen Stelle gegenübersteht, während sie codieren und testen. Das Hauptmotto der Tester besteht darin, den Fehler zu debuggen und ihn zu lösen. In diesem Artikel werden wir verstehen, welche Ausnahmen in Selen sind und wie wir mit ihnen umgehen sollen. Danach werden wir einen Überblick über die Hierarchie der Ausnahme sehen. Wir werden auch über die Arten von Ausnahmen und den Unterschied zwischen den überprüften und nicht kontrollierten Ausnahmen und der grundlegenden Syntax der Handhabung sprechen.
Was ist Ausnahmebehandlung?
Eine Ausnahme ist ein Ereignis während einer programmierten Ausführung, die verhindert, dass die Anweisungen dem regulären Fluss des Programms folgen. Um es in die andere Richtung auszudrücken, wird alles, was dazu führt, dass Ihr Testfall während des Laufens aufhört. Wenn einer passiert, hält die Anwendung ein und ein Ausnahmebobjekt wird erstellt. Nach einer Ausnahme sucht das Programm nach jemandem, der damit umgehen kann. Viel Debugging -Informationen werden durch das Ausnahmebobjekt einschließlich der Methodenhierarchie, der Zeilennummer bereitgestellt, in der die Ausnahme aufgetreten ist, der Typ der Ausnahme und mehr. Infolgedessen sehen Sie die verschiedenen Fehler, während Sie mit dem Selenium -Webdriver zusammenarbeiten, abhängig von dem Code, den Sie schreiben. Manchmal funktioniert der gleiche Code gut, während andere nicht nicht. Wenn Sie Ihre Skripte ausführen, können Sie auf ein paar verschiedene Ausnahmen stoßen. Jedes Mal, wenn Sie ein Skript erstellen, bemühen Sie sich daher, die höchste Codequalität bereitzustellen. Wenn ein erstes Problem auftritt, wird es eine Ausnahme erstellt und ausgelegt und schließlich damit umgehen.
Ausnahmehierarchie
Außergewöhnliche Umstände sollten von der Benutzeranwendung mit dieser Klasse erfasst werden. Ein weiterer Zweig wie Fehler wird von den anderen Java -Laufzeitsystemen verwendet, um die damit verbundenen Fehler anzuzeigen. Grundsätzlich gibt es unter Ausnahmen zwei Arten von Ausnahmen: Der eine wird überprüft und der andere ist deaktiviert. Sehen wir uns den Unterschied zwischen diesen beiden Ausnahmen an: Überprüfte und deaktivierte Ausnahmen.
Eine geprüfte Ausnahme bedeutet, dass es eine Ausnahme ist, die ist. Die ungeprüfte Ausnahme erfolgt während der Ausführung, obwohl der Compiler sie während der Zusammenstellung überprüft hat. Die überprüften Ausnahmen werden im Wesentlichen als Kompilierungszeitausnahmen bezeichnet, während die nicht überprüften Ausnahmen als Laufzeitausnahmen bezeichnet werden. Um die geprüfte Ausnahme zu verstehen, sollte der Programmierer diese Ausnahme bewältigen, um den normalen Ausführungsfluss aufrechtzuerhalten. Während die Laufzeitausnahmen ignoriert werden können und es keinen großen Unterschied in der Ausführung des Programms gibt. Dies ist der Hauptunterschied zwischen den überprüften und nicht kontrollierten Ausnahmen.
Klassenausnahmen
public static void main (String args [])
versuchen
fangen (Ausnahme E)
So sieht die Struktur der Ausnahme aus. Sie erstellen eine Klasse und schreiben einen Try -Block innerhalb der Hauptmethode, in dem Sie einen Code schreiben, der eine Ausnahme anbietet. Im Fangblock schreiben Sie den Code, der dies ausführen muss. Der Code erhebt eine Ausnahme, die im Try -Block enthalten ist. Der Code bringt also eine Ausnahme in den Try -Block aus. Um mit dem normalen Ausführungsfluss fortzufahren, wird es im Fangblock behandelt.
Arten von Ausnahmen in Selen
Es gibt verschiedene Arten von Ausnahmen, die im Folgenden erwähnt werden:
WebdriveRexception
Wenn Sie den Chrome -Treiber installieren lassen, aber Sie versuchen, eine Aktivität durchzuführen, tritt ein Fehler auf, wenn Sie dies versuchen, dies zu tun. Diese Ausnahme wird auf einem Mozilla Firefox -Fahrer angehoben, der ein Geeko -Fahrer ist.
NoSuchelementException
Diese Ausnahme wird ausgelöst, wenn der Web -Treiber das Element in der Drum -Struktur nicht findet. Das heißt, wenn Sie nicht in der Lage sind, ein bestimmtes Element zu lokalisieren, heißt es keine solche Ausnahme von Elementen. Das heißt, wenn dieses Element nicht vorhanden ist, ist dies der Grund, warum es keine solche Elementausnahme ausführt.
versuchen
Treiber.get (“https: // abc.com/iframe ”);
Treiber.FindElement (von.ID ("Timcd")).Sendkeys (… .Keystosend: "Hallo");
catch (NotFoundException e)
System.aus.printin ("nicht gefunden");
e.printStacktrace ();
;
Wir haben in diesem Code eine Ausnahme "nicht gefunden" gesehen. Zuerst müssen Sie zur URL gehen. Wechseln Sie dann zum Rahmen und geben Sie dann etwas ein. Wenn Sie nicht umschalten und direkt in ein Element eingeben, zeigt es den Fehler „Nicht gefunden“ im Fangelement an.
NoSuchframeException
Wenn Sie eine Aktion ausführen möchten, die zwischen den Frames wechselt und dies nicht in der Lage ist, da der untergeordnete Rahmen nicht vorhanden ist oder der übergeordnete Rahmen nicht in der Lage ist, durch den Kinderrahmen zu navigieren, wird in solchen Fällen keine solche Ausnahme ausgelöst.
NoalertPresentException
Dieser Fehler erscheint, wenn wir versuchen, eine Funktion auszuführen, die entweder akzeptiert oder abgelehnt wird und an dem benötigten Ort nicht erforderlich ist.
Ebenso haben wir eine JavaScript -Warnung. Wenn wir nicht auf die JavaScript -Warnung klicken, gibt es in diesem Fall keine Warnung. Wenn wir versuchen, diese Warnung zu wechseln, gibt es Ihnen eine NoalertPresentException.
TimeoutException
Diese Ausnahme wird ausgelöst, wenn ein Befehl die Aufgabe in einer bestimmten Zeit nicht erledigt.
Hier sind die Methoden, um eine Ausnahme mit Syntax zu bewältigen:
Versuchen Sie: Es wird verwendet, um einen Block anzugeben, in dem wir den Ausnahmecode platzieren.
Versuchen
// Code wird hier geschrieben
catch (exception_class_name)
Fang: Dieser Block wird verwendet, um die Ausnahme zu behandeln.
versuchen
Catch (ExceptionName E1)
/// Blockcode Catch
Wurf: Dies wird verwendet, um eine Ausnahme auszulegen.
fangen (Ausnahme E)
System.aus.println („Element ist nicht vorhanden.”);
werfen (e);
Würfe: Es wird verwendet, um zu erklären, was die Ausnahme ist.
öffentliche statische Leere Main (String [] Args)
wirft InterruptedException aus
Schließlich: Es wird verwendet, um den entscheidenden Code des Programms auszuführen.
versuchen
//// kritischer Code hier
Catch (Ausnahme E1)
[/// Blockcode catch
Endlich
//// Dieser Codeblock ist ausgeführt
Methoden zur Ausnahme mit Codes
Erstens erstellen wir eine außergewöhnliche Klasse.
Öffentliche Klasse ExceptionSandlingExample
Wir starten zuerst den Chrome -Treiber, um Google zu starten und durch eine bestimmte Website zu navigieren. Dann benutzen wir den Fadenpunkt Schlaf, um 3000 zu schlafen, was drei Millisekunden sind. Dann finden wir ein Element mit dem Namen, das „falsch ist.klicken". Jetzt ist dieses Element nicht vorhanden, also wirft es eine Ausnahme, die als Ausnahme „kein solches Element“ bezeichnet wird. Nachdem wir den Code ausgeführt haben, werden wir den Chrome -Treiber gestartet sehen.
Webdriver mydriver = neuer Chromedriver ();
mein Fahrer.Get (https: // www.Google.com);
Gewinde.Sleeep (3000);
mein Fahrer.FindElement (von.Name ("gefälscht")).klicken;
Nichts ist passiert, weil die Ausnahme hier aufgebracht wird. Wie wir sehen können, bringt es eine Ausnahme aus, in der „kein solches Element“ mit der Aussage steht,.
Um damit umzugehen, verwenden wir den Versuch, Block zu fangen. Verwenden Sie im Try -Block den folgenden Befehl:
catch (NoSuchelementException e)
System.aus.println („Element ist nicht vorhanden.”);
System.aus.println ("hi");
System.aus.println ("hi");
Wir schreiben den Code, der eine Ausnahme ausführt. Dieser Code bringt bereits eine Ausnahme aus, dass kein solches Element gefunden wird. Im Try -Block schreiben wir die Ausnahme "kein solches Element". Im Inneren drucken wir das "Element nicht gefunden" und "Hallo". Außerhalb des Try -Blocks möchten wir überprüfen, ob der normale Ausführungsfluss getragen wird oder nicht. Deshalb drucken wir diese Aussage außerhalb des Blocks. Nach dem Ausführen des Codes wirft er die Ausnahme nicht aus. Es druckt zweimal „Hallo“: Das erste Mal befindet. Um sicherzustellen, dass der normale Fluss der Ausführung nicht unterbrochen wird, können wir mit den Ausnahmen umgehen:
In diesem Beispiel sehen wir den erwarteten Zustandsfehler und wie man damit umgeht.
Aufführenli;
@Override
öffentlichvoid Performas (t Schauspieler)
li = browsetheweb.As (Schauspieler).Finadall (von.xPath ("// div [@class = 'nav-fill'] // a [@data-csa-c-type = 'link']"));
für (int i = 0; i
System.aus.println (“-WebelementFacade Liste des Menünamens ####” +li.bekomme ich).getText ());
Nachdem wir diesen Code ausgeführt haben.
Jetzt beheben wir diesen Fehler. Wenn wir vor dem Drucken des Wertes mehr als einen Wert schleifen, müssen wir überprüfen, ob das Element angezeigt wird oder nicht oder der Wert angezeigt wird oder nicht. Dann können wir diesen Wert drucken. In diesem Fall schreiben wir, ob das „li. erhalten.IS ”Bedingung wird angezeigt. Dies soll den Zustand überprüfen. Dann schreiben wir die Druckanweisung. Nach dem Ausführen des Codes liest er alle Werte. Infolgedessen erhalten wir den Test bestehen. Es liest alle Werte und als Ergebnis bestehen wir den Test.
Abschluss
Wir verstehen die erwarteten Bedingungen in Selen. Wir haben auch alle überprüften und nicht überprüften Ausnahmen in der Mitte des Artikels besprochen. Wir haben die Arten von Ausnahmen mit Beispielen erörtert. Zuletzt haben wir behandelt, wie man mit den Ausnahmen mit Codes umgeht. Dieser Artikel enthält alle Details zum Umgang mit Selen und den erwarteten Umständen.