Undantagshantering in Selenium Webdriver (typer)

Vad är ett undantag?

An undantag är ett fel som inträffar vid tidpunkten för körning av ett program. Men när ett program körs genererar programmeringsspråk ett undantag som bör hanteras för att undvika att ditt program kraschar.

Undantaget indikerar att även om händelsen kan inträffa, inträffar denna typ av händelse sällan. När metoden inte kan hantera undantaget, kastas den till sin anropsfunktion.

Typer av undantag i Selenium Webdriver

1. ElementNotVisibleException: Denna typ av Selenium undantag inträffar när ett befintligt element i DOM har en funktionsuppsättning som dold.

2. ElementNotSelectableException: Denna Selenium undantag inträffar när ett element presenteras i DOM, men du kan välja. Därför är det inte möjligt att interagera.

3. NoSuchElementException: Detta undantag uppstår om ett element inte kunde hittas.

4. NoSuchFrameException: Detta undantag inträffar om rammålet som ska bytas till inte existerar.

5. NoAlertPresentException: Detta undantag inträffar när du byter till ingen presenterad varning.

6. NoSuchWindowException: Detta undantag inträffar om växeln för fönstermålet inte finns.

7. StaleElementReferenceException: Denna Selenium undantag inträffar när webbelementet kopplas bort från den aktuella DOM.

8. SessionNotFoundException: WebDriver agerar efter att du har avslutat webbläsaren.

9. Undantag för timeout: Kastas när det inte finns tillräckligt med tid för ett kommando att slutföras. Till exempel hittades inte det sökta elementet under den angivna tiden.

10. WebDriverException: Detta undantag sker när WebDriver agerar direkt efter att du stänger webbläsaren.

11. ConnectionClosedException: Denna typ av undantag sker när det är en frånkoppling i föraren.

12. ElementClickInterceptedException: Kommandot kanske inte slutförs eftersom elementet som tar emot händelserna döljer elementet som begärdes klickat.

13. ElementNotInteractableException: Denna Selenium undantag kastas när något element presenteras i DOM. Det är dock omöjligt att interagera med ett sådant element.

14. ErrorInResponseException: Detta händer när du interagerar med Firefox tillägg eller fjärrdrivrutinsservern.

15. ErrorHandler.UnknownServerException: Undantag används som en platshållare om servern returnerar ett fel utan stackspårning.

16. ImeActivationFailedException: Denna förväntning kommer att inträffa när aktiveringen av IME-motorn har misslyckats.

17. ImeNotAvailableException: Det sker när IME-stöd inte är tillgängligt.

18. InsecureCertificateException: Navigering fick användaragenten att träffa en certifikatvarning. Detta kan orsakas av ett ogiltigt eller utgånget TLS-certifikat.

19. InvalidArgumentException: Det uppstår när ett argument inte tillhör den förväntade typen.

20. InvalidCookieDomainException: Detta händer när du försöker lägga till en cookie under en annan domän istället för aktuell URL.

21. InvalidCoordinatesException: Den här typen av undantag matchar en interagerande operation som inte är giltig.

22. InvalidElementStateException: Det inträffar när kommandot inte kan slutföras när elementet är ogiltigt.

23. InvalidSessionIdException: Detta undantag inträffade när det givna sessions-ID inte finns med i listan över aktiva sessioner. Det betyder att sessionen inte finns eller är inaktiv heller.

24. InvalidSwitchToTargetundantag: Detta inträffar när ramen eller fönstermålet som ska bytas inte finns.

25. Javascriptundantag: Det här problemet uppstår under körning JavaSkript givet av användaren.

26. JsonException: Det inträffar när du har råd att få sessionen när sessionen inte skapas.

27. NoSuchAttributeException: Denna typ av undantag uppstår när attributet för ett element inte kunde hittas.

28. FlyttaTargetOutOfBoundsException: Det sker om målet som tillhandahålls för ActionChains move()-metoden inte är giltigt. Till exempel ut ur dokumentet.

29. NoSuchContextException: ContextAware testar mobila enheter.

30. NoSuchCookieException: Detta undantag inträffar när ingen cookie som matchar det givna sökvägsnamnet hittas för alla associerade cookies i det aktuella dokumentet.

31. NotFoundException: Detta undantag är en underklass till WebDriverException. Detta inträffar när ett element på DOM inte finns.

32. RemoteDriverServerException: Denna Selenium undantag kastas när servern inte svarar på grund av problemet att de beskrivna funktionerna inte är korrekta.

33. Undantag för skärmdump: Det går inte att fånga en skärm.

34. SessionNotCreatedException: Det händer när en ny session inte kunde skapas.

35. UnableToSetCookieException: Detta inträffar om en förare inte kan ställa in en cookie.

36. UnexpectedTagNameException: Händer om en supportklass inte fick ett webbelement som förväntat.

37. UnhandledAlertException: Denna förväntning uppstår när det finns en varning, men WebDriver inte kan utföra varningsåtgärder.

38. UnexpectedAlertPresentException: Det inträffar när det dyker upp en oväntad varning.

39. UnknownMethodException: Detta undantag inträffar när det begärda kommandot matchar en känd URL men inte matchar med en metod för en specifik URL.

40. UnreachableBrowserException: Detta undantag inträffar endast när webbläsaren inte kan öppnas eller kraschas av någon anledning.

41. UnsupportedCommandException: Detta inträffar när fjärr-WebDriver inte skickar giltiga kommandon som förväntat.

Hur man hanterar undantag i Selenium

Här är några viktiga standarder som du kan hantera undantag i Selenium WebDriver:

Steg 1) Prova-fånga

Den här metoden kan fånga Exceptions, som använder en kombination av sökorden försök och fånga. Prova kommando indikerar början av blocket, och brottning placeras i slutet av försöksblocket, vilket hjälper till att lösa undantaget.

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

Steg 2) Flera fångstblock

Det finns olika typer av undantag, och du kan förvänta dig mer än ett undantag från ett enda kodblock. Flera fångar hjälper dig att hantera varje typ av undantag separat med ett separat kodblock. Den kan användas för mer än två fångstblock, och det finns ingen begränsning på antalet fångstblock.

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

Steg 3) Kasta

När du vill generera ett undantag, används nyckelordet Throw för att kasta undantag för att hantera det under körtiden. När du kastar ett undantag utan att hantera det, måste de använda Throw nyckelord.

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);
}
}

Steg 4) Flera undantag

Du kan nämna olika undantag i kastsatsen.

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
}

Steg 5) Slutligen

Nyckelordet Final används för att skapa ett kodblock under försöksblocket. Det är den sista koden som hjälper dig att exekvera oavsett förekomsten av ett undantag

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

Metoder för att visa undantag

Du kan också använda följande metoder för att visa undantagsinformation:

  • printStackTrace (): Denna funktion skriver ut stackspårning, namn på undantaget och annan användbar beskrivning.
  • att stränga (): Denna funktion returnerar ett textmeddelande som beskriver undantagets namn och beskrivning.
  • getMessage (): Hjälper till att visa beskrivningen av undantaget.

Sammanfattning

  • Ett undantag är ett fel som inträffar vid tidpunkten för körning av ett program.
  • Try-catch: Den här metoden kan fånga Exceptions, som använder en kombination av sökorden try och catch.
  • Flera fångar hjälper dig att hantera varje typ av undantag separat med ett separat kodblock.
  • Kasta nyckelord används för att kasta undantag för att hantera det under körtiden.
  • printStackTrace(): Den här funktionen skriver ut stackspårning, namnet på undantaget och annan användbar beskrivning
  • toString(): Denna funktion returnerar ett textmeddelande som beskriver undantagets namn och beskrivning.
  • getMessage(): Hjälper till att visa beskrivningen av undantaget.