Wat zijn uitzonderingen?
Een uitzondering is een fout die optreedt tijdens het uitvoeren 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 verwerken, wordt deze naar de bellerfunctie geworpen. Uiteindelijk, wanneer een uitzondering uit de hoofdfunctie wordt gegooid, wordt het programma abrupt beëindigd.
In deze tutorial leer je:
- Wat zijn uitzonderingen?
- Uitzonderingen in Selenium Web-stuurprogramma
- Omgaan met seleniumuitzonderingen
- Methoden voor het weergeven van uitzondering
Veelvoorkomende uitzonderingen in Selenium Web-stuurprogramma
Uitzonderingsnaam | Omschrijving |
ElementNotVisibleException | Dit type Selenium-uitzondering treedt op wanneer een bestaand element in DOM een functie heeft ingesteld als verborgen. |
ElementNotSelectableException | Deze Selenium-uitzondering doet zich voor wanneer een element wordt gepresenteerd in de DOM, maar u kunt wel selecteren. Daarom is interactie niet mogelijk. |
NoSuchElementException | Deze uitzondering treedt op als een element niet kan worden gevonden. |
NoSuchFrameException | Deze uitzondering treedt op als het framedoel waarnaar moet worden overgeschakeld, niet bestaat. |
NoAlertPresentException | Deze uitzondering treedt op wanneer u overschakelt naar geen gepresenteerde waarschuwing. |
NoSuchWindowException | Deze uitzondering treedt op als het vensterdoel dat moet worden omgeschakeld, niet bestaat. |
StaleElementReferenceException | Deze Selenium-uitzondering treedt op wanneer het webelement wordt losgekoppeld van de huidige DOM. |
SessionNotFoundException | De WebDriver handelt nadat u de browser heeft afgesloten. |
TimeoutException | Gegooid als er niet genoeg tijd is om een opdracht uit te voeren. Het gezochte element is bijvoorbeeld niet gevonden in de opgegeven tijd. |
WebDriverException | Deze uitzondering vindt plaats wanneer de webstuurprogramma actie onderneemt direct nadat u de browser hebt gesloten. |
ConnectionClosedException | Dit type uitzondering vindt plaats wanneer de verbinding in de driver wordt verbroken. |
ElementClickInterceptedException | De opdracht wordt mogelijk niet voltooid omdat het element dat de gebeurtenissen ontvangt het element verbergt waarop werd geklikt. |
ElementNotInteractableException | Deze Selenium-uitzondering wordt gegenereerd wanneer een element in de DOM wordt gepresenteerd. Het is echter onmogelijk om met een dergelijk element om te gaan. |
ErrorInResponseException | Dit gebeurt tijdens interactie met de Firefox-extensie of de externe stuurprogrammaserver. |
ErrorHandler.UnknownServerException | Uitzondering wordt gebruikt als tijdelijke aanduiding voor het geval dat de server een fout retourneert zonder een stacktracering. |
ImeActivationFailedException | Deze verwachting doet zich voor wanneer de activering van de IME-engine is mislukt. |
ImeNotAvailableException | Het vindt plaats wanneer IME-ondersteuning niet beschikbaar is. |
InsecureCertificateException | Navigatie zorgde ervoor dat de user-agent een certificaatwaarschuwing trof. Dit kan worden veroorzaakt door een ongeldig of verlopen TLS-certificaat. |
InvalidArgumentException | Het treedt op als een argument niet tot het verwachte type behoort. |
InvalidCookieDomainException | Dit gebeurt wanneer u een cookie probeert toe te voegen onder een ander domein in plaats van de huidige URL. |
InvalidCoordinatesException | Dit type uitzondering komt overeen met een interactieve bewerking die niet geldig is. |
InvalidElementStateExceptio | Het treedt op als het commando niet kan worden voltooid als het element ongeldig is. |
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 niet actief is. |
InvalidSwitchToTargetException | Dit gebeurt wanneer het frame of vensterdoel dat moet worden omgeschakeld niet bestaat. |
JavascriptException | Dit probleem treedt op tijdens het uitvoeren van JavaScript dat door de gebruiker is opgegeven. |
JsonException | Het treedt op wanneer u het zich veroorloven om de sessie te krijgen terwijl de sessie niet is gemaakt. |
NoSuchAttributeException | Dit soort uitzondering treedt op als het attribuut van een element niet kan worden gevonden. |
MoveTargetOutOfBoundsException | Het vindt plaats als het doel dat is opgegeven voor de ActionChains-methode move () niet geldig is. Bijvoorbeeld uit het document. |
NoSuchContextException | ContextAware voert tests uit op mobiele apparaten. |
NoSuchCookieException | Deze uitzondering treedt op als er geen cookie wordt gevonden die overeenkomt met de opgegeven padnaam voor alle bijbehorende cookies van het huidige browserdocument. |
NotFoundException | Deze uitzondering is een subklasse van WebDriverException. Dit gebeurt wanneer een element op de DOM niet bestaat. |
RemoteDriverServerException | Deze Selenium-uitzondering wordt gegenereerd wanneer de server niet reageert vanwege het probleem dat de beschreven mogelijkheden niet correct zijn. |
ScreenshotException | Het is niet mogelijk om een schermopname te maken. |
SessionNotCreatedException | Het gebeurt wanneer een nieuwe sessie niet succesvol kan worden gemaakt. |
UnableToSetCookieException | Dit gebeurt als een bestuurder geen cookie kan plaatsen. |
UnexpectedTagNameException | Gebeurt als een ondersteuningsklasse geen webelement heeft gekregen zoals verwacht. |
UnhandledAlertException | Deze verwachting doet zich voor wanneer er een waarschuwing is, maar WebDriver kan geen waarschuwing uitvoeren. |
UnexpectedAlertPresentException | Het treedt op als er een onverwachte waarschuwing verschijnt. |
UnknownMethodException | Deze uitzondering treedt op wanneer de gevraagde opdracht overeenkomt met een bekende URL, maar niet overeenkomt met een methodologie voor een specifieke URL. |
UnreachableBrowserException | Deze uitzondering treedt alleen op als de browser om een of andere reden niet kan worden geopend of gecrasht. |
UnsupportedCommandException | Dit gebeurt wanneer de externe WebDriver geen geldige opdrachten verzendt zoals verwacht. |
Omgaan met seleniumuitzonderingen
Hier zijn enkele belangrijke standaards waarmee u uitzonderingen in Selenium WebDriver kunt afhandelen:
Try-catch : deze methode kan uitzonderingen opvangen, waarbij een combinatie van de try-and-catch-trefwoorden wordt gebruikt. Het Try-commando geeft het begin van het blok aan en Catch wordt aan het einde van het try-blok geplaatst, wat helpt om de uitzondering op te lossen.
proberen// Code} catch (uitzondering e) {// Code voor het afhandelen van uitzonderingen
- Meerdere catch-blokken : er zijn verschillende soorten uitzonderingen en u kunt meer dan één uitzondering verwachten van een enkel codeblok. Meerdere catches helpen je om 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.
proberen//Code} catch (ExceptionType1 e1) {// Code voor het afhandelen van uitzondering 1} catch (ExceptionType2 e2) {// Code voor het afhandelen van uitzondering 2
- Throw : Als u een Exception wilt genereren, wordt het Throw-sleutelwoord gebruikt om Exception te genereren om deze tijdens de uitvoeringstijd af te handelen. Wanneer u een uitzondering gooit zonder deze te behandelen, dan moeten ze het Throw-trefwoord gebruiken.
public static void anyFunction () gooit Uitzondering {proberen {// schrijf hier uw code} Vangst (uitzondering b) {// Doe wat je wilt doen// Gooi de uitzondering terug naar het systeemgooien (b);
- Meerdere uitzonderingen : u kunt verschillende uitzonderingen vermelden in de worp-clausule.
public static void anyFunction () gooit ExceptionType1, ExceptionType2 {proberen {// schrijf hier uw code} catch (ExceptionType1 e1) {// Code om uitzondering 1 af te handelen} catch (ExceptionType1 e2) {// Code om uitzondering 2 af te handelen
- Ten slotte : het sleutelwoord Final wordt gebruikt om een codeblok te maken onder het try-blok. Het is de laatste code die u helpt bij het uitvoeren, ongeacht het optreden van een uitzondering
proberen {//Code} catch (ExceptionType1 e1) {// Vangblok} catch (ExceptionType2 e2) {// Vangblok} catch (ExceptionType3 e3) {// Vangblok} Tenslotte {// Het laatste blok wordt altijd uitgevoerd.
Methoden voor het weergeven van uitzondering
U kunt ook de volgende methoden gebruiken om informatie over uitzonderingen weer te geven:
- printStackTrace () : Deze functie drukt de stacktracering, de naam van de uitzondering en andere nuttige beschrijvingen af.
- toString () : Deze functie retourneert een tekstbericht met een beschrijving van de naam en beschrijving van de uitzondering.
- getMessage () : Helpt bij het weergeven van de beschrijving van de uitzondering.
Overzicht:
- Een uitzondering is een fout die optreedt tijdens het uitvoeren van een programma.
- Try-catch: deze methode kan uitzonderingen opvangen, waarbij een combinatie van de try-and-catch-trefwoorden wordt gebruikt.
- Meerdere catches helpen u om elk type uitzondering afzonderlijk af te handelen met een apart codeblok.
- Throw-sleutelwoord wordt gebruikt om Uitzondering te werpen om het tijdens de runtime af te handelen.
- printStackTrace (): Deze functie drukt de stacktracering, de naam van de uitzondering en andere nuttige beschrijvingen af
- toString (): Deze functie retourneert een tekstbericht met een beschrijving van de naam en beschrijving van de uitzondering.
- getMessage (): Helpt bij het weergeven van de beschrijving van de uitzondering.