Kas yra išimtys?
Išimtis yra klaida, kad vyksta į programos vykdymo metu. Tačiau, vykdydami programą, programavimo kalbos sukuria išimtį, kuri turėtų būti tvarkoma, kad programa nesugestų.
Išimtis rodo, kad nors įvykis ir gali įvykti, tokio tipo įvykiai vyksta retai. Kai metodas negali apdoroti išimties, jis perduodamas skambinančiojo funkcijai. Galiausiai, kai išimtis išmetama iš pagrindinės funkcijos, programa staiga nutraukiama.
Šioje pamokoje sužinosite:
- Kas yra išimtys?
- „Selenium“ žiniatinklio tvarkyklės išimtys
- Tvarkyti seleno išimtis
- Išimties rodymo metodai
Dažniausios „Selenium“ žiniatinklio tvarkyklės išimtys
Išimties pavadinimas | apibūdinimas |
ElementNotVisibleException | Šio tipo „Selenium“ išimtis atsiranda, kai esamo DOM elemento funkcijos yra paslėptos. |
ElementNotSelectableException | Ši „Selenium“ išimtis atsiranda, kai elementas pateikiamas DOM, bet jūs galite pasirinkti. Todėl bendrauti neįmanoma. |
„NoSuchElementException“ | Ši išimtis įvyksta, jei nepavyko rasti elemento. |
„NoSuchFrameException“ | Ši išimtis įvyksta, jei rėmo taikinys, į kurį reikia pereiti, neegzistuoja. |
„NoAlertPresentException“ | Ši išimtis įvyksta, kai persijungiate į nepateiktą įspėjimą. |
„NoSuchWindowException“ | Ši išimtis įvyksta, jei lango taikinys, kurį reikia perjungti, neegzistuoja. |
„StaleElementReferenceException“ | Ši „Selenium“ išimtis įvyksta, kai žiniatinklio elementas yra atsietas nuo dabartinio DOM. |
„SessionNotFoundException“ | „WebDriver“ veikia jums uždarius naršyklę. |
TimeoutException | Metamas, kai nepakanka laiko komandai įvykdyti. Pavyzdžiui, ieškotas elementas nurodytu laiku nerastas. |
„WebDriverException“ | Ši išimtis įvyksta, kai „WebDriver“ veikia iškart uždarius naršyklę. |
ConnectionClosedException | Šio tipo išimtys įvyksta, kai vairuotojas atjungiamas. |
„ElementClickInterceptedException“ | Komanda gali būti neužbaigta, nes įvykius priimantis elementas slepia prašomą elementą. |
ElementNotInteractableException | Ši seleno išimtis išmetama, kai bet kuris elementas pateikiamas DOM. Tačiau su tokiu elementu bendrauti neįmanoma. |
ErrorInResponseException | Tai atsitinka bendraujant su „Firefox“ plėtiniu arba nuotolinio tvarkyklės serveriu. |
ErrorHandler.UnknownServerException | Išimtis naudojama kaip vietos rezervavimo priemonė tuo atveju, jei serveris pateikia klaidą be kamino pėdsakų. |
„ImeActivationFailedException“ | Tai tikimasi tada, kai nepavyksta suaktyvinti IME variklio. |
„ImeNotAvailableException“ | Tai vyksta, kai IME palaikymas nepasiekiamas. |
„InsecureCertificateException“ | Naršymas privertė vartotojo agentą pasiekti įspėjimą apie sertifikatą. Tai gali sukelti netinkamas arba pasibaigęs TLS sertifikatas. |
InvalidArgumentException | Jis įvyksta, kai argumentas nepriklauso laukiamam tipui. |
InvalidCookieDomainException | Taip nutinka, kai bandote pridėti slapuką po kitu domenu, o ne su dabartiniu URL. |
InvalidCoordinatesException | Šio tipo išimtys atitinka sąveikaujančią operaciją, kuri nėra tinkama. |
„InvalidElementStateExceptio“ | Tai atsitinka, kai komandos negalima užbaigti, kai elementas yra neteisingas. |
„InvalidSessionIdException“ | Ši išimtis įvyko, kai nurodytas seanso ID nėra įtrauktas į aktyvių seansų sąrašą. Tai reiškia, kad sesija taip pat neegzistuoja arba yra neaktyvi. |
„InvalidSwitchToTargetException“ | Taip atsitinka, kai nėra perjungiamo rėmo ar lango taikinio. |
„Javascript“ išimtis | Ši problema kyla vykdant vartotojo pateiktą „JavaScript“. |
JsonException | Tai atsitinka, kai jūs leidžiate gauti sesiją, kai sesija nėra sukurta. |
„NoSuchAttributeException“ | Tokia išimtis atsiranda, kai nepavyko rasti elemento atributo. |
„MoveTargetOutOfBoundsException“ | Tai vyksta, jei „ActionChains move ()“ metodikai pateiktas tikslas nėra galiojantis. Pavyzdžiui, iš dokumento. |
„NoSuchContextException“ | „ContextAware“ testuoja mobiliuosius įrenginius. |
NoSuchCookieException | Ši išimtis atsiranda, kai nerandama slapuko, atitinkančio nurodytą kelio pavadinimą, visiems susijusiems šiuo metu naršomo dokumento slapukams. |
„NotFoundException“ | Ši išimtis yra „WebDriverException“ poklasis. Taip atsitiks, kai DOM elemento nėra. |
„RemoteDriverServerException“ | Ši „Selenium“ išimtis išmetama, kai serveris neatsako dėl problemos, kad aprašytos galimybės nėra tinkamos. |
ScreenshotException | Neįmanoma užfiksuoti ekrano. |
SessionNotCreatedException | Taip atsitinka, kai nepavyko sėkmingai sukurti naujos sesijos. |
„UnableToSetCookieException“ | Taip atsitinka, jei vairuotojas negali nustatyti slapuko. |
„UnexpectedTagNameException“ | Atsitinka, jei palaikymo klasė negavo žiniatinklio elemento, kaip tikėtasi. |
„UnhandledAlertException“ | Tai tikimasi, kai yra perspėjimas, tačiau „WebDriver“ negali atlikti įspėjimo operacijos. |
„UnexpectedAlertPresentException“ | Tai įvyksta netikėtai įspėjus. |
UnknownMethodException | Ši išimtis įvyksta, kai prašoma komanda sutampa su žinomu URL, bet neatitinka konkretaus URL metodikos. |
„UnreachableBrowserException“ | Ši išimtis atsiranda tik tada, kai naršyklės dėl kokių nors priežasčių negalima atidaryti ar užstrigti. |
„UnsupportedCommandException“ | Taip atsitinka, kai nuotolinis „WebDriver“ nesiunčia galiojančių komandų, kaip tikėtasi. |
Tvarkyti seleno išimtis
Čia yra keletas svarbių standartų, kuriais galite naudotis „Selenium WebDriver“ išimtimis:
Pabandykite sugauti : šis metodas gali užfiksuoti išimtis, kuriose naudojami bandymo ir gaudymo raktinių žodžių deriniai. „Try“ komanda nurodo bloko pradžią, o „ Catch“ yra bandymo bloko pabaigoje, o tai padeda išspręsti išimtį.
bandyti{// Kodas} laimikis (e išimtis) {// Tvarkymo išimties kodas}
- Keli sugavimo blokai : Yra įvairių rūšių išimčių, ir jūs galite tikėtis daugiau nei vienos išimties iš vieno kodo bloko. Keli sugavimai padeda tvarkyti kiekvieną išimties tipą atskirai su atskiru kodo bloku. Jis gali būti naudojamas daugiau nei dviem gaudymo blokais, o gaudymo blokų skaičius nėra ribojamas.
bandyti{// Kodas} sugauti (ExceptionType1 e1) {// 1 išimties tvarkymo kodas} sugauti (ExceptionType2 e2) {// 2 išimties tvarkymo kodas}
- Metimas : kai norite sugeneruoti išimtį, metimo raktinis žodis naudojamas metant išimtį, kad ji būtų tvarkoma vykdymo metu. Kai jūs išmetate išimtį to nepadarę, jie turi naudoti metimo raktinį žodį.
public static void anyFunction () išmeta išimtį {bandyti {// čia parašyk savo kodą} Laimikis (b išimtis) {// Daryk viską, ką nori atlikti// Išmesti atgal į sistemąmetimas (b);}}
- Kelios išimtys : metimų sąlygoje galite paminėti įvairias išimtis.
public static void anyFunction () išmeta „ExceptionType1“, „ExceptionType2“ {bandyti {// čia parašyk savo kodą} sugauti (ExceptionType1 e1) {// 1 išimties tvarkymo kodas} sugauti (ExceptionType1 e2) {// 2 išimties tvarkymo kodas}
- Galiausiai : galutinis raktinis žodis naudojamas sukurti kodo bloką po bandomuoju bloku. Tai yra galutinis kodas, kuris jums padeda vykdyti, neatsižvelgiant į išimties atvejį
bandyti {// Kodas} sugauti (ExceptionType1 e1) {// Sugavimo blokas} sugauti (ExceptionType2 e2) {// Sugavimo blokas} sugavimas („ExceptionType3 e3“) {// Sugavimo blokas} pagaliau {// Galutinis blokas visada vykdomas.}
Išimties rodymo metodai
Taip pat galite naudoti šiuos metodus, kad būtų rodoma informacija apie išimtis:
- printStackTrace () : ši funkcija išspausdina kamino pėdsakus, išimties pavadinimą ir kitą naudingą aprašymą.
- toString () : ši funkcija pateikia tekstinį pranešimą, kuriame aprašomas išimties pavadinimas ir aprašas.
- getMessage () : padeda parodyti išimties aprašą.
Santrauka:
- Išimtis yra klaida, įvykusi programos vykdymo metu.
- Pabandykite sugauti: šis metodas gali užfiksuoti išimtis, kuriose naudojami bandymo ir gaudymo raktinių žodžių deriniai.
- Keli sugavimai padeda tvarkyti kiekvieną išimties tipą atskirai su atskiru kodo bloku.
- „Throw“ raktinis žodis naudojamas „Exception“ išmetimui, kad jis būtų tvarkomas vykdymo metu.
- printStackTrace (): ši funkcija išspausdina kamino pėdsakus, išimties pavadinimą ir kitą naudingą aprašymą
- toString (): ši funkcija pateikia tekstinį pranešimą, kuriame aprašomas išimties pavadinimas ir aprašas.
- getMessage (): padeda parodyti išimties aprašymą.