Čo sú to výnimky?
Výnimkou je chyba, čo sa deje v čase vykonávania programu. Počas spustenia programu však programovacie jazyky generujú výnimku, ktorú je potrebné spracovať, aby nedošlo k zlyhaniu programu.
Výnimka naznačuje, že aj keď k udalosti môže dôjsť, tento typ udalosti sa stane zriedka. Keď metóda nie je schopná spracovať výnimku, vrhne sa na svoju funkciu volajúceho. Nakoniec, keď dôjde k vyhodeniu výnimky z hlavnej funkcie, program sa náhle ukončí.
V tomto návode sa dozviete:
- Čo sú to výnimky?
- Výnimky v ovládači selénu Web
- Zaobchádzanie s výnimkami selénu
- Metódy zobrazenia výnimky
Bežné výnimky v ovládači selénu Web
Názov výnimky | Popis |
ElementNotVisibleException | Tento typ výnimky selénu nastáva, keď má existujúci prvok v DOM nastavenú funkciu skrytú. |
ElementNotSelectableException | Táto výnimka selénu nastáva, keď je prvok prezentovaný v DOM, ale môžete si vybrať. Preto nie je možné interagovať. |
NoSuchElementException | Táto výnimka nastane, ak sa nepodarilo nájsť prvok. |
NoSuchFrameException | Táto výnimka nastane, ak cieľ rámca, na ktorý sa má prepnúť, neexistuje. |
NoAlertPresentException | Táto výnimka nastane, keď prepnete na žiadne predložené varovanie. |
NoSuchWindowException | Táto výnimka nastane, ak cieľ okna, ktorý sa má prepnúť, neexistuje. |
StaleElementReferenceException | K tejto výnimke selénu dochádza, keď je webový prvok odpojený od aktuálneho modelu DOM. |
SessionNotFoundException | WebDriver koná po ukončení prehliadača. |
Výnimka časového limitu | Vyhodené, keď nie je dostatok času na dokončenie príkazu. Napríklad hľadaný prvok nebol nájdený v zadanom čase. |
WebDriverException | Táto výnimka nastáva, keď WebDriver koná ihneď po zatvorení prehľadávača. |
ConnectionClosedException | Tento typ výnimky sa vyskytuje, keď dôjde k odpojeniu vodiča. |
ElementClickInterceptedException | Príkaz sa nemusí dať dokončiť, pretože prvok prijímajúci udalosti zakrýva prvok, na ktorý sa kliklo. |
ElementNotInteractableException | Táto výnimka selénu sa vyvolá, keď sa v DOM zobrazí akýkoľvek prvok. Nie je však možné s takýmto prvkom interagovať. |
ErrorInResponseException | Stáva sa to pri interakcii s rozšírením Firefox alebo so serverom vzdialeného ovládača. |
ErrorHandler.UnknownServerException | Výnimka sa používa ako zástupný symbol v prípade, že server vráti chybu bez sledovania zásobníka. |
ImeActivationFailedException | Toto očakávanie nastane, keď zlyhala aktivácia motora IME. |
ImeNotAvailableException | Prebieha, keď podpora IME nie je k dispozícii. |
InsecureCertificateException | Navigácia prinútila agenta používateľa naraziť na varovanie certifikátu. Môže to spôsobiť neplatný alebo vypršaný certifikát TLS. |
InvalidArgumentException | Vyskytuje sa, keď argument nepatrí do očakávaného typu. |
InvalidCookieDomainException | To sa stane, keď sa pokúsite pridať súbor cookie pod inú doménu namiesto aktuálnej adresy URL. |
InvalidCoordinatesException | Tento typ výnimky sa zhoduje s interagujúcou operáciou, ktorá je neplatná. |
InvalidElementStateExceptio | Vyskytuje sa, keď nemožno dokončiť príkaz, keď je prvok neplatný. |
InvalidSessionIdException | K tejto výnimke došlo, keď dané ID relácie nie je zahrnuté v zozname aktívnych relácií. Znamená to, že relácia neexistuje alebo je neaktívna. |
InvalidSwitchToTargetException | K tomu dôjde, keď cieľ alebo rám okna, ktorý sa má prepnúť, neexistuje. |
JavascriptException | Tento problém nastáva pri vykonávaní JavaScriptu zadaného používateľom. |
JsonException | Nastáva, keď si dovolíte získať reláciu, keď relácia nie je vytvorená. |
NoSuchAttributeException | Tento druh výnimky nastáva, keď sa nepodarilo nájsť atribút prvku. |
MoveTargetOutOfBoundsException | Prebieha, ak cieľ poskytnutý metodológii ActionChains move () nie je platný. Napríklad z dokumentu. |
NoSuchContextException | Spoločnosť ContextAware vykonáva testovanie mobilných zariadení. |
NoSuchCookieException | Táto výnimka nastane, keď sa pre všetky súvisiace súbory cookie dokumentu, ktorý je momentálne prehliadaný, nenájde žiadny súbor cookie zodpovedajúci danému názvu cesty. |
NotFoundException | Táto výnimka je podtriedou WebDriverException. K tomu dôjde, keď prvok v DOM neexistuje. |
RemoteDriverServerException | Táto výnimka selénu sa vyvolá, keď server nereaguje z dôvodu problému, že opísané schopnosti nie sú správne. |
ScreenshotException | Nie je možné nasnímať obrazovku. |
SessionNotCreatedException | Stáva sa to, keď sa nepodarilo úspešne vytvoriť novú reláciu. |
UnableToSetCookieException | K tomu dôjde, ak vodič nedokáže nastaviť súbor cookie. |
UnexpectedTagNameException | Stane sa, ak trieda podpory nezískala webový prvok podľa očakávania. |
UnhandledAlertException | Toto očakávanie sa vyskytuje, keď existuje výstraha, ale WebDriver nie je schopný vykonať operáciu výstrahy. |
UnexpectedAlertPresentException | Nastáva, keď sa objaví neočakávané upozornenie. |
UnknownMethodException | Táto výnimka sa stane, keď sa požadovaný príkaz zhoduje so známou adresou URL, ale nezhoduje sa s metodikou pre konkrétnu adresu URL. |
UnreachableBrowserException | Táto výnimka sa vyskytuje, iba ak z nejakého dôvodu nemožno prehliadač otvoriť alebo zlyhať. |
UnsupportedCommandException | K tomu dôjde, keď vzdialený WebDriver neodošle platné príkazy podľa očakávania. |
Zaobchádzanie s výnimkami selénu
Tu je niekoľko dôležitých štandardov, pomocou ktorých môžete zvládnuť výnimky v selenovom webovom ovládači:
Try-catch : Táto metóda dokáže zachytiť výnimky, ktorá využíva kombináciu kľúčových slov try and catch. Príkaz Try označuje začiatok bloku a Catch je umiestnený na konci bloku try, čo pomáha vyriešiť výnimku.
skús{// Kód} úlovok (výnimka e) {// Kód na spracovanie výnimky}
- Viac blokov úlovku : Existuje niekoľko typov výnimiek a od jedného bloku kódu môžete očakávať viac ako jednu výnimku. Viaceré úlovky vám pomôžu zvládnuť každý typ výnimky osobitne pomocou samostatného bloku kódu. Môže byť použitý pre viac ako dva bloky úlovkov a počet blokov úlovkov nie je nijako obmedzený.
skús{// Kód} chytit (ExceptionType1 e1) {// Kód pre spracovanie výnimky 1} chytit (ExceptionType2 e2) {// Kód na spracovanie výnimky 2}
- Vyhodiť : Ak chcete vygenerovať Výnimku, kľúčové slovo Vyhodiť sa použije na vyvolanie výnimky, aby sa s ňou za behu hralo. Ak vrháte výnimku bez toho, aby ste ju spracovali, musí použiť kľúčové slovo Throw.
public static void anyFunction () vyvolá výnimku {skúsiť {// sem napíš svoj kód} Úlovok (výnimka b) {// Robte čokoľvek chcete// Vráťte výnimku späť do systémuhod (b);}}
- Viaceré výnimky : V klauzule throws môžete spomenúť rôzne výnimky.
public static void anyFunction () hodí ExceptionType1, ExceptionType2 {skúsiť {// sem napíš svoj kód} chytit (ExceptionType1 e1) {// Kód na spracovanie výnimky 1} chytit (ExceptionType1 e2) {// Kód na spracovanie výnimky 2}
- Nakoniec : Kľúčové slovo Final sa používa na vytvorenie bloku kódu v bloku try. Je to konečný kód, ktorý vám pomôže vykonať bez ohľadu na výskyt výnimky
skúsiť {// Kód} chytit (ExceptionType1 e1) {// Blok úlovkov} chytit (ExceptionType2 e2) {// Blok úlovkov} chytit (ExceptionType3 e3) {// Blok úlovkov} konečne {// Konečný blok sa vždy vykoná.}
Metódy zobrazenia výnimky
Na zobrazenie informácií o výnimkách môžete použiť aj nasledujúce metódy:
- printStackTrace () : Táto funkcia vytlačí trasovanie zásobníka, názov výnimky a ďalší užitočný popis.
- toString () : Táto funkcia vráti textovú správu s popisom názvu a popisu výnimky.
- getMessage () : Pomáha zobraziť popis výnimky.
Zhrnutie:
- Výnimkou je chyba, ktorá sa stane v čase vykonania programu.
- Try-catch: Táto metóda dokáže zachytiť výnimky, ktorá využíva kombináciu kľúčových slov try and catch.
- Viaceré úlovky vám pomôžu zvládnuť každý typ výnimky osobitne pomocou samostatného bloku kódu.
- Kľúčové slovo Throw sa používa na vyvolanie výnimky, aby sa s ním manipulovalo za behu.
- printStackTrace (): Táto funkcia vytlačí trasovanie zásobníka, názov výnimky a ďalší užitočný popis
- toString (): Táto funkcia vráti textovú správu s popisom názvu a popisu výnimky.
- getMessage (): Pomáha zobraziť popis výnimky.