Ce este o excepție?
O excepție este o eroare care se întâmplă în momentul executării unui program. Cu toate acestea, în timp ce rulați un program, limbajele de programare generează o excepție care ar trebui gestionată pentru a evita ca programul dvs. să se blocheze.
Excepția indică faptul că, deși evenimentul poate avea loc, acest tip de eveniment se întâmplă rar. Când metoda nu este capabilă să gestioneze excepția, aceasta este aruncată în funcția sa de apelant. În cele din urmă, când o excepție este eliminată din funcția principală, programul este terminat brusc.
În acest tutorial, veți învăța:
- Ce este o excepție?
- Excepții la driverul Selenium Web
- Tratarea excepțiilor de seleniu
- Metode pentru afișarea excepției
Excepții comune la driverul Selenium Web
Numele excepției | Descriere |
ElementNotVisibleException | Acest tip de excepție Selenium apare atunci când un element existent în DOM are o caracteristică setată ca ascunsă. |
ElementNotSelectableException | Această excepție de seleniu apare atunci când un element este prezentat în DOM, dar puteți selecta. Prin urmare, nu este posibil să interacționăm. |
NoSuchElementException | Această excepție apare dacă un element nu a putut fi găsit. |
NoSuchFrameException | Această excepție apare dacă nu există ținta cadru la care trebuie să treceți. |
NoAlertPresentException | Această excepție apare atunci când treceți la nicio alertă prezentată. |
NoSuchWindowException | Această excepție apare în cazul în care comutatorul țintă de fereastră nu există. |
StaleElementReferenceException | Această excepție Selenium apare atunci când elementul web este detașat de DOM-ul curent. |
SessionNotFoundException | WebDriver acționează după ce ați părăsit browserul. |
TimeoutException | Aruncată atunci când nu este suficient timp pentru ca o comandă să fie finalizată. De exemplu, elementul căutat nu a fost găsit în timpul specificat. |
WebDriverException | Această excepție are loc atunci când WebDriver acționează imediat după ce închideți browserul. |
ConnectionClosedException | Acest tip de excepție are loc atunci când există o deconectare în driver. |
ElementClickInterceptedException | Comanda nu poate fi finalizată deoarece elementul care primește evenimentele ascunde elementul pe care a fost solicitat clic. |
ElementNotInteractableException | Această excepție de seleniu este aruncată atunci când orice element este prezentat în DOM. Cu toate acestea, este imposibil să interacționezi cu un astfel de element. |
ErrorInResponseException | Acest lucru se întâmplă în timpul interacțiunii cu extensia Firefox sau serverul driverului de la distanță. |
ErrorHandler.UnknownServerException | Excepția este utilizată ca substituent în cazul în care serverul returnează o eroare fără o urmă de stivă. |
ImeActivationFailedException | Această așteptare va apărea atunci când activarea motorului IME a eșuat. |
ImeNotAvailableException | Are loc atunci când asistența IME nu este disponibilă. |
InsecureCertificateException | Navigarea a făcut ca agentul utilizator să primească un avertisment de certificat. Acest lucru poate fi cauzat de un certificat TLS invalid sau expirat. |
InvalidArgumentException | Apare atunci când un argument nu aparține tipului așteptat. |
InvalidCookieDomainException | Acest lucru se întâmplă atunci când încercați să adăugați un cookie sub un alt domeniu în loc de adresa URL curentă. |
InvalidCoordinatesException | Acest tip de excepție se potrivește cu o operațiune de interacțiune care nu este validă. |
InvalidElementStateExceptio | Apare atunci când comanda nu poate fi terminată atunci când elementul este invalid. |
InvalidSessionIdException | Această excepție a avut loc atunci când ID-ul sesiunii date nu este inclus în lista sesiunilor active. Înseamnă că sesiunea nu există sau este inactivă. |
InvalidSwitchToTargetException | Acest lucru se întâmplă atunci când cadrul sau fereastra țintă de comutat nu există. |
JavascriptException | Această problemă apare în timpul executării JavaScript-ului dat de utilizator. |
JsonException | Apare atunci când vă permiteți să obțineți sesiunea atunci când sesiunea nu este creată. |
NoSuchAttributeException | Acest tip de excepție apare atunci când atributul unui element nu a putut fi găsit. |
MoveTargetOutOfBoundsException | Are loc dacă ținta furnizată metodologiei ActionChains move () nu este validă. De exemplu, din document. |
NoSuchContextException | ContextAware efectuează testarea dispozitivelor mobile. |
NoSuchCookieException | Această excepție apare atunci când nu se găsește niciun cookie care se potrivește cu calea dată pentru toate cookie-urile asociate din documentul de navigare curent. |
NotFoundException | Această excepție este o subclasă a WebDriverException. Acest lucru se va întâmpla atunci când un element de pe DOM nu există. |
RemoteDriverServerException | Această excepție Selenium este aruncată atunci când serverul nu răspunde din cauza problemei că capacitățile descrise nu sunt adecvate. |
ScreenshotException | Nu este posibil să capturați un ecran. |
SessionNotCreatedException | Se întâmplă când o nouă sesiune nu a putut fi creată cu succes. |
UnableToSetCookieException | Acest lucru se întâmplă dacă un conducător auto nu poate seta un cookie. |
UnexpectedTagNameException | Se întâmplă dacă o clasă de asistență nu a obținut un element web așa cum era de așteptat. |
UnhandledAlertException | Această așteptare apare atunci când există o alertă, dar WebDriver nu este capabil să efectueze operațiunea Alertă. |
UnexpectedAlertPresentException | Apare atunci când apare apariția unei alerte neașteptate. |
UnknownMethodException | Această excepție se întâmplă atunci când comanda solicitată se potrivește cu o adresă URL cunoscută, dar și nu se potrivește cu o metodologie pentru o anumită adresă URL. |
UnreachableBrowserException | Această excepție apare numai atunci când browserul nu poate fi deschis sau blocat din anumite motive. |
UnsupportedCommandException | Acest lucru se întâmplă atunci când WebDriver la distanță nu trimite comenzi valide așa cum era de așteptat. |
Tratarea excepțiilor de seleniu
Iată câteva standarde importante cu care puteți gestiona excepțiile din Selenium WebDriver:
Încercare-capturare : Această metodă poate prinde excepții, care utilizează o combinație de cuvinte cheie încercați și capturați. Comanda Try indică începutul blocului, iar Catch este plasat la sfârșitul blocului try, ceea ce ajută la rezolvarea excepției.
încerca{// Cod} catch (Exception e) {// Excepție de cod pentru gestionare}
- Blocuri multiple de captură : există diferite tipuri de excepții și vă puteți aștepta la mai multe excepții de la un singur bloc de cod. Capturile multiple vă ajută să gestionați fiecare tip de excepție separat, cu un bloc separat de cod. Poate fi folosit pentru mai mult de două blocuri de prindere și nu există nicio limitare a numărului de blocuri de prindere.
încerca{//Cod} catch (ExceptionType1 e1) {// Cod pentru tratarea excepției 1} catch (ExceptionType2 e2) {// Cod pentru tratarea excepției 2}
- Throw : Când doriți să generați o excepție, cuvântul cheie Throw este utilizat pentru a arunca Exception pentru a o gestiona în timpul de execuție. Când lansați o excepție fără a o manipula, atunci trebuie să utilizeze cuvântul cheie Throw.
public static nul anyFunction () aruncă Excepție {încerca {// scrieți codul aici} Captură (excepție b) {// Fă orice vrei să faci// Aruncați excepția înapoi în sistemarunca (b);}}
- Excepții multiple : Puteți menționa diverse excepții în clauza aruncărilor.
public static void anyFunction () aruncă ExceptionType1, ExceptionType2 {încerca {// scrieți codul aici} catch (ExceptionType1 e1) {// Cod pentru a gestiona excepția 1} catch (ExceptionType1 e2) {// Cod pentru a gestiona excepția 2}
- În cele din urmă : cuvântul cheie Final este utilizat pentru a crea un bloc de cod sub blocul try. Este codul final care vă ajută să executați, indiferent de apariția unei excepții
încerca {//Cod} catch (ExceptionType1 e1) {// Bloc de captură} catch (ExceptionType2 e2) {// Bloc de captură} catch (ExceptionType3 e3) {// Bloc de captură} in cele din urma {// Blocul final se execută întotdeauna.}
Metode pentru afișarea excepției
De asemenea, puteți utiliza următoarele metode pentru a afișa informații de excepție:
- printStackTrace () : Această funcție imprimă urmele stivei, numele Excepției și alte descrieri utile.
- toString () : Această funcție returnează un mesaj text care descrie numele și descrierea excepției.
- getMessage () : ajută la afișarea descrierii excepției.
Rezumat:
- O excepție este o eroare care se întâmplă în momentul executării unui program.
- Încercare-capturare: Această metodă poate prinde excepții, care utilizează o combinație de cuvinte cheie încercați și capturați.
- Capturile multiple vă ajută să gestionați fiecare tip de excepție separat, cu un bloc separat de cod.
- Cuvântul cheie Throw este folosit pentru a arunca Exception pentru a-l gestiona în timpul rulării.
- printStackTrace (): Această funcție imprimă urmele stivei, numele Excepției și alte descrieri utile
- toString (): Această funcție returnează un mesaj text care descrie numele și descrierea excepției.
- getMessage (): ajută la afișarea descrierii excepției.