Afhandeling van uitzonderingen in Selenium Webdriver (typen)

Wat is een uitzondering?

An uitzondering is een fout die optreedt tijdens de uitvoering van een programma. Tijdens het uitvoeren van een programma genereren programmeertalen echter een uitzondering die moet worden afgehandeld om te voorkomen dat uw programma crasht.

De uitzondering geeft aan dat, hoewel de gebeurtenis kan optreden, dit type gebeurtenis niet vaak voorkomt. Wanneer de methode de uitzondering niet kan afhandelen, wordt deze naar de callerfunctie gestuurd.

Soorten uitzonderingen in Selenium Webdriver

1. ElementNotVisibleException: Dit type Selenium-uitzondering treedt op wanneer voor een bestaand element in DOM een functie is ingesteld als verborgen.

2. ElementNotSelectableException: Deze Selenium-uitzondering treedt op wanneer een element wordt gepresenteerd in de ARREST, maar u kunt wel selecteren. Daarom is interactie niet mogelijk.

3. NoSuchElementException: Deze uitzondering treedt op als een element niet kan worden gevonden.

4. NoSuchFrameException: Deze uitzondering treedt op als het framedoel waarnaar moet worden overgeschakeld, niet bestaat.

5. NoAlertPresentException: Deze uitzondering treedt op wanneer u overschakelt naar geen waarschuwing gepresenteerd.

6. NoSuchWindowException: Deze uitzondering treedt op als het vensterdoel dat moet worden omgeschakeld niet bestaat.

7. StaleElementReferenceException: Deze Selenium-uitzondering treedt op wanneer het webelement wordt losgekoppeld van de huidige DOM.

8. SessionNotFoundException: De WebDriver treedt in werking nadat u de browser afsluit.

9. Time-outuitzondering: Wordt gegooid als er niet genoeg tijd is om een ​​opdracht uit te voeren. Het gezochte element is bijvoorbeeld niet binnen de opgegeven tijd gevonden.

10. WebDriverException: Deze uitzondering vindt plaats wanneer de WebDriver direct actie onderneemt nadat u de browser sluit.

11. ConnectionClosedException: Dit type uitzondering vindt plaats wanneer de verbinding met het stuurprogramma is verbroken.

12. ElementClickInterceptedException: Het commando kan mogelijk niet worden voltooid omdat het element dat de gebeurtenissen ontvangt, het element verbergt waarop werd geklikt.

13. ElementNotInteractableException: Deze Selenium-uitzondering wordt gegenereerd wanneer een element in de DOM wordt gepresenteerd. Het is echter onmogelijk om met een dergelijk element te communiceren.

14. ErrorInResponseException: Dit gebeurt tijdens de interactie met de Firefox extensie of de externe stuurprogrammaserver.

15. ErrorHandler.UnknownServerException: Uitzondering wordt gebruikt als tijdelijke aanduiding voor het geval de server een fout retourneert zonder een stacktracering.

16. ImeActivationFailedException: Deze verwachting zal optreden wanneer de activering van de IME-engine is mislukt.

17. ImeNotAvailableException: Het vindt plaats wanneer IME-ondersteuning niet beschikbaar is.

18. InsecureCertificateException: De navigatie zorgde ervoor dat de user-agent een certificaatwaarschuwing kreeg. Dit kan worden veroorzaakt door een ongeldig of verlopen TLS-certificaat.

19. InvalidArgumentException: Het treedt op wanneer een argument niet tot het verwachte type behoort.

20. InvalidCookieDomainException: Dit gebeurt wanneer u een cookie probeert toe te voegen onder een ander domein in plaats van de huidige URL.

21. Ongeldige coördinatenUitzondering: Dit type uitzondering komt overeen met een interactieve bewerking die niet geldig is.

22. InvalidElementStateException: Het treedt op wanneer de opdracht niet kan worden voltooid als het element ongeldig is.

23. InvalidSessionIdException: Deze uitzondering vond plaats wanneer de opgegeven sessie-ID niet is opgenomen in de lijst met actieve sessies. Het betekent dat de sessie niet bestaat of ook inactief is.

24. OngeldigeSwitchToTargetException: Dit gebeurt wanneer het te wisselen frame of vensterdoel niet bestaat.

25. JavascriptUitzondering: Dit probleem treedt op tijdens het uitvoeren van JavaScript dat door de gebruiker is opgegeven.

26. JsonException: Het komt voor wanneer u het zich kunt veroorloven om de sessie te krijgen terwijl de sessie niet is aangemaakt.

27. NoSuchAttributeException: Dit soort uitzondering treedt op wanneer het attribuut van een element niet kan worden gevonden.

28. MoveTargetOutOfBoundsException: Dit vindt plaats als het doel dat is opgegeven voor de ActionChains move()-methodologie niet geldig is. Bijvoorbeeld uit het document.

29. Geen dergelijke contextuitzondering: ContextAware voert testen van mobiele apparaten uit.

30. NoSuchCookieException: Deze uitzondering treedt op wanneer er geen cookie gevonden wordt die overeenkomt met de opgegeven padnaam voor alle bijbehorende cookies van het document dat momenteel wordt gebladerd.

31. NotFoundException: Deze uitzondering is een subklasse van WebDriverException. Dit gebeurt wanneer een element op de DOM niet bestaat.

32. RemoteDriverServerException: Deze Selenium-uitzondering wordt gegenereerd wanneer de server niet reageert vanwege het probleem dat de beschreven mogelijkheden niet correct zijn.

33. ScreenshotUitzondering: Het is niet mogelijk om een ​​scherm vast te leggen.

34. SessionNotCreatedException: Dit gebeurt wanneer een nieuwe sessie niet met succes kan worden aangemaakt.

35. UnableToSetCookieException: Dit gebeurt als een bestuurder geen cookie kan instellen.

36. OnverwachteTagNameException: Gebeurt als een ondersteuningsklasse geen webelement heeft gekregen zoals verwacht.

37. UnhandledAlertException: Deze verwachting doet zich voor wanneer er een waarschuwing is, maar WebDriver geen waarschuwingsbewerking kan uitvoeren.

38. UnexpectedAlertPresentException: Het treedt op wanneer er een onverwachte waarschuwing verschijnt.

39. Onbekende MethodException: Deze uitzondering treedt op wanneer de gevraagde opdracht overeenkomt met een bekende URL, maar niet overeenkomt met een methodologie voor een specifieke URL.

40. Onbereikbare browseruitzondering: Deze uitzondering treedt alleen op als de browser om een ​​of andere reden niet kan worden geopend of is gecrasht.

41. Niet-ondersteundeCommandException: Dit gebeurt wanneer de externe WebDriver geen geldige opdrachten verzendt zoals verwacht.

Hoe om te gaan met uitzonderingen in Selenium

Hier volgen enkele belangrijke standaarden waarmee u uitzonderingen in Selenium WebDriver kunt afhandelen:

Stap 1) Probeer te vangen

Deze methode kan Exceptions vangen, waarbij gebruik wordt gemaakt van een combinatie van de try- en catch-trefwoorden. Try-opdracht geeft het begin van het blok aan, en het worstelen wordt aan het einde van het try-blok geplaatst, wat helpt bij het oplossen van de uitzondering.

try
{
// Code
} catch (Exception e) {
// Code for Handling exception
}

Stap 2) Meerdere vangblokken

Er zijn verschillende soorten uitzonderingen en u kunt meer dan één uitzondering verwachten voor één enkel codeblok. Meerdere catches helpen u elk type uitzondering afzonderlijk af te handelen met een apart codeblok. Het kan worden gebruikt voor meer dan twee catch-blokken, en er is geen beperking op het aantal catch-blokken.

try
{
//Code
} catch (ExceptionType1 e1) {
//Code for Handling Exception 1
} catch (ExceptionType2 e2) {
//Code for Handling Exception 2
}

Stap 3) Gooi

Wanneer u een uitzondering wilt genereren, wordt het sleutelwoord Throw gebruikt om een ​​uitzondering te genereren om deze tijdens de runtime af te handelen. Wanneer je door bentwing een uitzondering maakt zonder deze af te handelen, dan moeten ze het trefwoord Throw gebruiken.

public static void anyFunction() throws Exception{

try {
// write your code here
} Catch (Exception b) {
// Do whatever you want to perform 
// Throw the Exception back to the system
throw(b);
}
}

Stap 4) Meerdere uitzonderingen

U kunt verschillende uitzonderingen vermelden in de worpenclausule.

public static void anyFunction() throws ExceptionType1, ExceptionType2{

try {
// write your code here
} catch (ExceptionType1 e1) {
// Code to handle exception 1
} catch (ExceptionType1 e2) {
// Code to handle exception 2
}

Stap 5) Eindelijk

Het trefwoord Final wordt gebruikt om een ​​codeblok onder het try-blok te maken. Het is de uiteindelijke code die u helpt bij het uitvoeren, ongeacht of er een uitzondering optreedt

try {
//Code
} catch (ExceptionType1 e1) {
//Catch block
} catch (ExceptionType2 e2) {
//Catch block
} catch (ExceptionType3 e3) {
//Catch block
} finally {
//The finally block always executes.
}

Methoden voor het weergeven van uitzonderingen

Je kunt ook de volgende gebruikenwing methoden om uitzonderingsinformatie weer te geven:

  • printStackTrace (): Deze functie drukt de stacktracering, de naam van de uitzondering en andere nuttige beschrijvingen af.
  • toString (): deze functie retourneert een sms-bericht waarin de uitzonderingsnaam en -beschrijving worden beschreven.
  • GetMessage (): Helpt bij het weergeven van de beschrijving van de uitzondering.

Samengevat

  • Een uitzondering is een fout die optreedt tijdens de uitvoering van een programma.
  • Try-catch: deze methode kan uitzonderingen opvangen, waarbij gebruik wordt gemaakt van een combinatie van de try- en catch-trefwoorden.
  • Meerdere catches helpen u elk type uitzondering afzonderlijk af te handelen met een apart codeblok.
  • Het sleutelwoord Throw wordt gebruikt om Exception te genereren om het tijdens de runtime af te handelen.
  • printStackTrace(): Deze functie drukt de stacktrace, de naam van de uitzondering en andere nuttige beschrijvingen af
  • toString(): Deze functie retourneert een tekstbericht waarin de naam en beschrijving van de uitzondering wordt beschreven.
  • getMessage(): Helpt bij het weergeven van de beschrijving van de uitzondering.