Kaj so izjeme?
Izjema je napaka, ki se zgodi v času izvajanja programa. Vendar pa programski jeziki med izvajanjem programa ustvarijo izjemo, ki jo je treba obravnavati, da preprečite zrušitev programa.
Izjema kaže, da čeprav se dogodek lahko zgodi, se ta vrsta dogodka zgodi redko. Ko metoda ne more obvladati izjeme, se vrne na funkcijo klicatelja. Sčasoma se program, ko izvleče izjema iz glavne funkcije, nenadoma zaključi.
V tej vadnici boste izvedeli:
- Kaj so izjeme?
- Izjeme v spletnem gonilniku Selenium
- Obravnavanje izjem iz selena
- Metode za prikaz izjem
Pogoste izjeme v spletnem gonilniku Selenium
Ime izjeme | Opis |
ElementNotVisibleException | Ta vrsta izjeme selena se pojavi, ko ima obstoječi element v DOM-u funkcijo nastavljeno kot skrito. |
ElementNotSelectableException | Ta izjema Selenium se pojavi, ko je element predstavljen v DOM-u, vendar ga lahko izberete. Zato ni mogoče komunicirati. |
NoSuchElementException | Ta izjema se zgodi, če elementa ni bilo mogoče najti. |
NoSuchFrameException | Ta izjema se zgodi, če cilj okvira, na katerega želite preklopiti, ne obstaja. |
NoAlertPresentException | Ta izjema se pojavi, ko preklopite na nobeno predstavljeno opozorilo. |
NoSuchWindowException | Ta izjema se zgodi, če cilj okna, ki ga je treba preklopiti, ne obstaja. |
StaleElementReferenceException | Ta izjema Selenium se zgodi, ko je spletni element ločen od trenutnega DOM-a. |
SessionNotFoundException | WebDriver deluje, ko zaprete brskalnik. |
TimeoutException | Vrže se, ko ni dovolj časa za dokončanje ukaza. Na primer, iskanega elementa v določenem času ni bilo mogoče najti. |
WebDriverException | Ta izjema se zgodi, ko WebDriver deluje takoj po zaprtju brskalnika. |
ConnectionClosedException | Ta vrsta izjem se zgodi, če je v gonilniku prekinjena povezava. |
ElementClickInterceptedException | Ukaz morda ni dokončan, ker element, ki prejema dogodke, prikriva element, ki je bil kliknjen. |
ElementNotInteractableException | Ta izjema selena se vrže, ko je kateri koli element predstavljen v DOM-u. Vendar je s takšnim elementom nemogoče komunicirati. |
ErrorInResponseException | To se zgodi med interakcijo z razširitvijo Firefox ali oddaljenim strežnikom gonilnikov. |
ErrorHandler.UnknownServerException | Izjema se uporablja kot rezervirano mesto, če strežnik vrne napako brez sledi sklada. |
ImeActivationFailedException | To pričakovanje se bo zgodilo, ko aktiviranje mehanizma IME ne bo uspelo. |
ImeNotAvailableException | To se zgodi, ko podpora za IME ni na voljo. |
InsecureCertificateException | Navigacija je uporabniškemu agentu omogočila, da je pritisnil opozorilo potrdila. To lahko povzroči neveljavno ali poteklo potrdilo TLS. |
InvalidArgumentException | Pojavi se, kadar argument ne spada v pričakovani tip. |
InvalidCookieDomainException | To se zgodi, ko poskušate namesto trenutnega URL-ja dodati piškotek pod drugo domeno. |
InvalidCoordinatesException | Ta vrsta izjem se ujema z medsebojno povezano operacijo, ki ni veljavna. |
InvalidElementStateExceptio | Pojavi se, ko ukaza ni mogoče končati, ko je element neveljaven. |
InvalidSessionIdException | Ta izjema se je zgodila, ko dani ID seje ni na seznamu aktivnih sej. To pomeni, da seja ne obstaja ali pa je tudi neaktivna. |
InvalidSwitchToTargetException | To se zgodi, ko cilj okvira ali okna, ki ga je treba zamenjati, ne obstaja. |
JavascriptException | Ta težava se pojavi med izvajanjem JavaScript, ki ga je dal uporabnik. |
JsonException | To se zgodi, ko si privoščite sejo, ko seja ni ustvarjena. |
NoSuchAttributeException | Tovrstna izjema se zgodi, ko atributa elementa ni bilo mogoče najti. |
MoveTargetOutOfBoundsException | To se zgodi, če cilj, naveden v metodologiji ActionChains move (), ni veljaven. Na primer, iz dokumenta. |
NoSuchContextException | ContextAware izvaja testiranje mobilnih naprav. |
NoSuchCookieException | Ta izjema se zgodi, ko za vse povezane piškotke trenutno brskalnega dokumenta ni najden noben piškotek, ki se ujema z danim imenom poti. |
NotFoundException | Ta izjema je podrazred WebDriverException. To se bo zgodilo, če element na DOM ne obstaja. |
RemoteDriverServerException | Ta izjema Selenium se sproži, ko se strežnik ne odziva zaradi težave, ker opisane zmogljivosti niso ustrezne. |
ScreenshotException | Zaslona ni mogoče zajeti. |
SessionNotCreatedException | To se zgodi, ko nove seje ni bilo mogoče uspešno ustvariti. |
UnableToSetCookieException | To se zgodi, če voznik ne more nastaviti piškotka. |
UnexpectedTagNameException | Se zgodi, če razred za podporo ni dobil spletnega elementa, kot je bilo pričakovano. |
UnhandledAlertException | To pričakovanje se pojavi, ko je opozorilo, vendar WebDriver ne more izvesti opozorila. |
UnexpectedAlertPresentException | Pojavi se, ko se pojavi nepričakovano opozorilo. |
UnknownMethodException | Ta izjema se zgodi, ko se zahtevani ukaz ujema z znanim URL-jem, vendar se ne ujema z metodologijo za določen URL. |
UnreachableBrowserException | Ta izjema se zgodi le, če brskalnika zaradi nekega razloga ni mogoče odpreti ali zrušiti. |
UnsupportedCommandException | To se zgodi, ko oddaljeni WebDriver ne pošlje veljavnih ukazov, kot je bilo pričakovano. |
Obravnavanje izjem iz selena
Tu je nekaj pomembnih standardov, s katerimi lahko obvladate izjeme v programu Selenium WebDriver:
Try-catch : Ta metoda lahko ujame izjeme, ki uporablja kombinacijo ključnih besed try and catch. Ukaz Try označuje začetek bloka, Catch pa je postavljen na konec bloka try, kar pomaga rešiti izjemo.
poskusite{// Koda} ulov (izjema e) {// Koda za obravnavo izjeme}
- Več blokov ulova : obstajajo različne vrste izjem in od enega bloka kode lahko pričakujete več kot eno izjemo. Večkratni ulovi vam pomagajo obravnavati vsako vrsto izjem posebej z ločenim blokom kode. Uporablja se lahko za več kot dva bloka ulova, število blokov ulova pa ni omejeno.
poskusite{//Koda} ulov (ExceptionType1 e1) {// Koda za ravnanje z izjemami 1} ulov (ExceptionType2 e2) {// Koda za ravnanje z izjemo 2}
- Vrzi : Ko želite ustvariti izjemo, se ključna beseda Throw uporabi za vrnitev izjeme, da jo obravnava v času izvajanja. Ko vržete izjemo, ne da bi jo obravnavali, morajo uporabiti ključno besedo Throw.
public static void anyFunction () vrže izjemo {poskusite {// tu napiši svojo kodo} Ulov (izjema b) {// Naredite vse, kar želite izvesti// Vrni izjemo nazaj v sistemmet (b);}}
- Več izjem : v klavzuli o metanju lahko omenite različne izjeme.
javna statična void anyFunction () vrže ExceptionType1, ExceptionType2 {poskusite {// tu napiši svojo kodo} ulov (ExceptionType1 e1) {// Koda za obravnavo izjeme 1} ulov (ExceptionType1 e2) {// Koda za obravnavo izjeme 2}
- Končno : Ključna beseda Final se uporablja za ustvarjanje bloka kode pod poskusnim blokom. Končna koda vam pomaga, da se izvede ne glede na pojav izjeme
poskusite {//Koda} ulov (ExceptionType1 e1) {// Blok ulova} ulov (ExceptionType2 e2) {// Blok ulova} ulov (ExceptionType3 e3) {// Blok ulova} končno {// Končni blok se vedno izvrši.}
Metode za prikaz izjem
Za prikaz izjem informacij lahko uporabite tudi naslednje metode:
- printStackTrace () : Ta funkcija natisne sled sklada, ime izjeme in drug uporaben opis.
- toString () : Ta funkcija vrne besedilno sporočilo, ki opisuje ime in opis izjeme.
- getMessage () : pomaga prikazati opis izjeme.
Povzetek:
- Izjema je napaka, ki se zgodi v času izvajanja programa.
- Try-catch: Ta metoda lahko ujame izjeme, ki uporablja kombinacijo ključnih besed try and catch.
- Večkratni ulovi vam pomagajo obravnavati vsako vrsto izjem posebej z ločenim blokom kode.
- Ključna beseda Throw se uporablja za metanje Exception, da jo obravnava v času izvajanja.
- printStackTrace (): Ta funkcija natisne sled sklada, ime izjeme in drug uporaben opis
- toString (): Ta funkcija vrne besedilno sporočilo, ki opisuje ime in opis izjeme.
- getMessage (): pomaga prikazati opis izjeme.