Mis on erandid?
Arvatud on viga, mis juhtub ajal täitmise programmi. Programmi käitamise ajal genereerivad programmeerimiskeeled siiski erandi, mida tuleks käsitleda, et teie programm kokku ei kukuks.
Erand näitab, et kuigi sündmus võib juhtuda, juhtub seda tüüpi sündmusi harva. Kui meetod ei suuda erandit käsitleda, visatakse see helistajafunktsiooni. Lõpuks, kui erand põhifunktsioonist välja visatakse, lõpetatakse programm järsult.
Selles õpetuses saate teada:
- Mis on erandid?
- Seleniumi veebidraiveri erandid
- Seleeni erandite käsitlemine
- Erandi kuvamise meetodid
Seleeni veebidraiveri tavalised erandid
Erandi nimi | Kirjeldus |
ElementNotVisibleException | Seda tüüpi seleeni erand ilmneb siis, kui DOM-i olemasoleval elemendil on funktsioon peidetud. |
ElementNotSelectableException | See seleeni erand ilmneb siis, kui element esitatakse DOM-is, kuid saate selle valida. Seetõttu ei ole võimalik suhelda. |
NoSuchElementException | See erand ilmneb juhul, kui elementi ei leitud. |
NoSuchFrameException | See erand ilmneb juhul, kui ümber lülitatavat raami sihtmärki pole olemas. |
NoAlertPresentException | See erand ilmneb siis, kui lülitute esitamata hoiatusele. |
NoSuchWindowException | See erand ilmneb juhul, kui lülitatavat akna sihtmärki pole olemas. |
StaleElementReferenceException | See seleeni erand ilmneb siis, kui veebielement lahutatakse praegusest DOM-ist. |
SessionNotFoundException | Pärast brauserist väljumist töötab WebDriver. |
TimeoutException | Visatakse siis, kui käsu täitmiseks pole piisavalt aega. Näiteks ei leitud otsitud elementi määratud aja jooksul. |
WebDriverException | See erand toimub siis, kui WebDriver tegutseb kohe pärast brauseri sulgemist. |
ConnectionClosedException | Seda tüüpi erand toimub siis, kui draiveris on ühendus katkestatud. |
ElementClickInterceptedException | Käsk ei pruugi olla lõpule viidud, kuna sündmusi vastu võttev element varjab soovitud elementi. |
ElementNotInteractableException | See seleeni erand visatakse, kui mis tahes element esitatakse DOM-is. Sellise elemendiga on aga võimatu suhelda. |
ErrorInResponseException | See juhtub Firefoxi laienduse või kaugdraiveriserveriga suhtlemisel. |
ErrorHandler.UnknownServerException | Erandit kasutatakse kohahoidjana juhul, kui server tagastab vea ilma virnajäljeta. |
ImeActivationFailedException | See ootus tekib siis, kui IME-mootori aktiveerimine ebaõnnestub. |
ImeNotAvailableException | See toimub siis, kui IME tugi pole saadaval. |
InsecureCertificateException | Navigeerimine pani kasutajaagendi tabama sertifikaadi hoiatust. Selle võib põhjustada kehtetu või aegunud TLS-i sertifikaat. |
InvalidArgumentException | See tekib siis, kui argument ei kuulu oodatud tüüpi. |
InvalidCookieDomainException | See juhtub siis, kui proovite küpsise lisada praeguse URL-i asemel mõne muu domeeni alla. |
InvalidCoordinatesException | Seda tüüpi erand sobib koostoimel, mis ei kehti. |
InvalidElementStateExceptio | See juhtub siis, kui käsku ei saa lõpule viia, kui element on vale. |
InvalidSessionIdException | See erand leidis aset siis, kui antud seansi ID pole aktiivsete seansside loendis. See tähendab, et seanssi pole olemas või see on ka passiivne. |
InvalidSwitchToTargetException | See juhtub siis, kui vahetatavat raami või akna sihtmärki pole olemas. |
Javascripti erand | See probleem ilmneb kasutaja antud JavaScripti käivitamisel. |
JsonException | See juhtub siis, kui lubate seansi saada, kui seanssi pole loodud. |
NoSuchAttributeException | Selline erand ilmneb siis, kui elemendi atribuuti ei leitud. |
MoveTargetOutOfBoundsException | See toimub juhul, kui ActionChains move () metoodikale antud sihtmärk ei kehti. Näiteks dokumendist välja. |
NoSuchContextException | ContextAware teeb mobiilseadmete testimist. |
NoSuchCookieException | See erand ilmneb siis, kui parajasti sirvitava dokumendi kõigi seotud küpsiste jaoks ei leitud antud teenimega vastavat küpsist. |
NotFoundException | See erand on WebDriverExceptioni alaklass. See juhtub siis, kui DOM-is elementi pole. |
RemoteDriverServerException | See seleeni erand visatakse siis, kui server ei reageeri probleemi tõttu, et kirjeldatud võimalused pole õiged. |
ScreenshotException | Ekraani pole võimalik jäädvustada. |
SessionNotCreatedException | See juhtub siis, kui uut seanssi ei õnnestunud edukalt luua. |
UnableToSetCookieException | See juhtub, kui juht ei saa küpsist seadistada. |
UnexpectedTagNameException | Juhtub, kui tugiklass ei saanud ootuspäraselt veebielementi. |
UnhandledAlertException | See ootus ilmneb siis, kui on olemas hoiatus, kuid WebDriver ei saa Alert toimingut teha. |
UnexpectedAlertPresentException | See juhtub ootamatu häire ilmnemisel. |
UnknownMethodException | See erand juhtub siis, kui taotletud käsk sobib tuntud URL-iga, kuid ei vasta konkreetse URL-i metoodikale. |
UnreachableBrowserException | See erand ilmneb ainult siis, kui brauserit ei saa mingil põhjusel avada ega kokku kukkuda. |
UnsupportedCommandException | See juhtub siis, kui kaug-WebDriver ei saada kehtivaid käske ootuspäraselt. |
Seleeni erandite käsitlemine
Siin on mõned olulised standardid, mille abil saate seleeni WebDriveris erandeid käsitleda:
Proovige püüdma : see meetod võib tabada erandeid, mis kasutab proovimise ja püüdmise märksõnade kombinatsiooni. Käsk Proovi näitab ploki algust ja Catch asetatakse prooviploki lõppu, mis aitab erandit lahendada.
proovige{// Kood} saak (erand e) {// Erandi käitlemise kood}
- Mitu püüdmisplokki : erandeid on erinevat tüüpi ja ühest koodiplokist võite oodata mitut erandit. Mitu püüdmist aitab teil käsitleda igat tüüpi erandeid eraldi eraldi koodiplokiga. Seda saab kasutada rohkem kui kahe püüdmisploki jaoks ja püügiplokkide arv pole piiratud.
proovige{// Kood} saak (ExceptionType1 e1) {// Erandi käsitlemise kood 1} saak (ExceptionType2 e2) {// Erandi käitlemise kood 2}
- Viskamine : kui soovite luua erandi, kasutatakse viske märksõna Exceptioni viskamiseks, et seda käitamisajal käsitseda. Kui viskate erandi ilma seda käsitlemata, peavad nad kasutama märksõna Viska.
public static void anyFunction () viskab erandi {proovige {// kirjuta siia oma kood} Püük (erand b) {// Tehke kõike, mida soovite esitada// Viska erand süsteemi tagasivisata (b);}}
- Mitu erandit : visete klauslis saate mainida erinevaid erandeid.
public static void anyFunction () viskab ExceptionType1, ExceptionType2 {proovige {// kirjuta siia oma kood} saak (ExceptionType1 e1) {// Kood erandi 1 käsitsemiseks} saak (ExceptionType1 e2) {// Kood erandi 2 käitlemiseks}
- Lõpuks : lõplikku märksõna kasutatakse prooviploki alla koodiploki loomiseks. See on viimane kood, mis aitab teil käivitada, olenemata erandi ilmnemisest
proovige {// Kood} saak (ExceptionType1 e1) {// Püügiplokk} saak (ExceptionType2 e2) {// Püügiplokk} saak (ExceptionType3 e3) {// Püügiplokk} lõpuks {// Viimane plokk täidetakse alati.}
Erandi kuvamise meetodid
Eranditeabe kuvamiseks võite kasutada ka järgmisi meetodeid:
- printStackTrace () : see funktsioon prindib virna jälje, erandi nime ja muu kasuliku kirjelduse.
- toString () : see funktsioon tagastab tekstisõnumi, mis kirjeldab erandi nime ja kirjeldust.
- getMessage () : aitab kuvada erandi kirjeldust.
Kokkuvõte:
- Erandiks on viga, mis juhtub programmi käivitamise ajal.
- Proovige püüdma: see meetod võib püüda erandeid, mis kasutab proovimise ja püüdmise märksõnade kombinatsiooni.
- Mitu püüdmist aitab teil igat tüüpi erandeid eraldi käsitseda eraldi koodiplokiga.
- Throw märksõna kasutatakse Exceptioni viskamiseks selle käitamise ajal käitlemiseks.
- printStackTrace (): see funktsioon prindib virna jälje, erandi nime ja muu kasuliku kirjelduse
- toString (): see funktsioon tagastab tekstisõnumi, mis kirjeldab erandi nime ja kirjeldust.
- getMessage (): aitab kuvada erandi kirjeldust.