Co jsou to výjimky?
Výjimkou je chyba, co se děje v době provádění programu. Při spuštění programu však programovací jazyky generují výjimku, která by měla být zpracována, aby nedošlo k selhání programu.
Výjimka označuje, že i když k události může dojít, k tomuto typu události dochází zřídka. Když metoda není schopna zpracovat výjimku, je vyvolána na její funkci volajícího. Nakonec, když je výjimka vyhozena z hlavní funkce, program je náhle ukončen.
V tomto výukovém programu se naučíte:
- Co jsou to výjimky?
- Výjimky v ovladači Selenium Web
- Zpracování výjimek selenu
- Metody pro zobrazení výjimky
Běžné výjimky v selenovém webovém ovladači
Název výjimky | Popis |
ElementNotVisibleException | K tomuto typu výjimky selenu dochází, když má existující prvek v DOMu funkci nastavenou jako skrytou. |
ElementNotSelectableException | K této selenové výjimce dochází, když je prvek prezentován v DOM, ale můžete si vybrat. Proto není možné komunikovat. |
NoSuchElementException | K této výjimce dochází, pokud prvek nelze najít. |
NoSuchFrameException | K této výjimce dochází, pokud cíl rámce, na který se má přepnout, neexistuje. |
NoAlertPresentException | K této výjimce dojde, když přepnete na žádné předložené upozornění. |
NoSuchWindowException | K této výjimce dochází, pokud cíl okna, který má být přepnut, neexistuje. |
StaleElementReferenceException | K této výjimce selenu dochází, když je webový prvek odpojen od aktuálního DOM. |
SessionNotFoundException | Po ukončení prohlížeče WebDriver jedná. |
TimeoutException | Vyhozeno, když není dostatek času na dokončení příkazu. Například hledaný prvek nebyl v zadaném čase nalezen. |
WebDriverException | K této výjimce dochází, když WebDriver jedná hned po zavření prohlížeče. |
ConnectionClosedException | K tomuto typu výjimky dochází, když dojde k odpojení ovladače. |
ElementClickInterceptedException | Příkaz nemusí být dokončen, protože prvek přijímající události skrývá prvek, na který bylo kliknuto. |
ElementNotInteractableException | Tato výjimka selenu je vyvolána, když je v DOM uveden jakýkoli prvek. Je však nemožné s takovým prvkem interagovat. |
ErrorInResponseException | K tomu dochází při interakci s příponou Firefox nebo se serverem vzdáleného ovladače. |
ErrorHandler.UnknownServerException | Výjimka se používá jako zástupný symbol v případě, že server vrátí chybu bez trasování zásobníku. |
ImeActivationFailedException | Toto očekávání nastane, když selhala aktivace motoru IME. |
ImeNotAvailableException | Probíhá, když podpora IME není k dispozici. |
InsecureCertificateException | Navigace způsobila, že uživatelský agent narazil na varování certifikátu. To může způsobit neplatný nebo prošlý certifikát TLS. |
InvalidArgumentException | Nastane, když argument nepatří očekávanému typu. |
InvalidCookieDomainException | K tomu dochází, když se pokusíte přidat soubor cookie pod jinou doménou místo aktuální adresy URL. |
InvalidCoordinatesException | Tento typ výjimky odpovídá interagující operaci, která není platná. |
InvalidElementStateExceptio | Dochází k němu, když nelze dokončit příkaz, když je prvek neplatný. |
InvalidSessionIdException | K této výjimce došlo, když dané ID relace není zahrnuto v seznamu aktivních relací. To znamená, že relace neexistuje nebo je buď neaktivní. |
InvalidSwitchToTargetException | K tomu dochází, když cíl rámce nebo okna, který má být přepnut, neexistuje. |
JavascriptException | K tomuto problému dochází při provádění JavaScriptu zadaného uživatelem. |
JsonException | Nastává, když si dovolíte získat relaci, když relace není vytvořena. |
NoSuchAttributeException | K tomuto druhu výjimky dochází, když nelze najít atribut prvku. |
MoveTargetOutOfBoundsException | Probíhá, pokud cíl poskytnutý metodice ActionChains move () není platný. Například mimo dokument. |
NoSuchContextException | ContextAware provádí testování mobilních zařízení. |
NoSuchCookieException | K této výjimce dochází, když pro všechny přidružené soubory cookie aktuálně procházeného dokumentu nebyl nalezen žádný soubor cookie odpovídající danému názvu cesty. |
NotFoundException | Tato výjimka je podtřídou WebDriverException. K tomu dojde, když prvek v DOM neexistuje. |
RemoteDriverServerException | Tato výjimka selenu je vyvolána, když server neodpovídá kvůli problému, že popsané funkce nejsou správné. |
ScreenshotException | Nelze zachytit obrazovku. |
SessionNotCreatedException | Stává se to, když nelze úspěšně vytvořit novou relaci. |
UnableToSetCookieException | K tomu dochází, pokud ovladač nemůže nastavit soubor cookie. |
UnexpectedTagNameException | Stane se, pokud třída podpory nezískala webový prvek podle očekávání. |
UnhandledAlertException | K tomuto očekávání dochází, když existuje výstraha, ale WebDriver není schopen provést operaci výstrahy. |
UnexpectedAlertPresentException | Nastane, když se objeví neočekávané upozornění. |
UnknownMethodException | K této výjimce dochází, když se požadovaný příkaz shoduje se známou adresou URL, ale neodpovídá metodice pro konkrétní adresu URL. |
UnreachableBrowserException | K této výjimce dochází pouze v případě, že prohlížeč z nějakého důvodu nelze otevřít nebo selhat. |
UnsupportedCommandException | K tomu dochází, když vzdálený WebDriver neposílá platné příkazy podle očekávání. |
Zpracování výjimek selenu
Zde je několik důležitých standardů, pomocí kterých můžete zpracovávat výjimky v selenovém WebDriveru:
Try-catch : Tato metoda může zachytit výjimky, které používají kombinaci klíčových slov try and catch. Příkaz Try označuje začátek bloku a Catch je umístěn na konec bloku try, což pomáhá vyřešit výjimku.
Snaž se{// Kód} úlovek (výjimka e) {// Kód pro zpracování výjimky}
- Více bloků úlovku : Existují různé typy výjimek a od jednoho bloku kódu můžete očekávat více než jednu výjimku. Více úlovků vám pomůže zvládnout každý typ výjimky samostatně pomocí samostatného bloku kódu. Lze jej použít pro více než dva bloky úlovků a počet bloků úlovku není nijak omezen.
Snaž se{//Kód} chytit (ExceptionType1 e1) {// Kód pro zpracování výjimky 1} chytit (ExceptionType2 e2) {// Kód pro zpracování výjimky 2}
- Throw : Pokud chcete vygenerovat výjimku, Throw klíčové slovo se používá k vyvolání výjimky, aby se s ní za běhu zacházelo. Když vyvoláváte výjimku, aniž byste ji zpracovali, musí použít klíčové slovo Throw.
public static void anyFunction () vyvolá výjimku {Snaž se {// zde napište svůj kód} Úlovek (výjimka b) {// Dělejte, co chcete hrát// Vraťte výjimku zpět do systémuhod (b);}}
- Více výjimek : V klauzuli throws můžete uvést různé výjimky.
public static void anyFunction () hodí ExceptionType1, ExceptionType2 {Snaž se {// zde napište svůj kód} chytit (ExceptionType1 e1) {// Kód pro zpracování výjimky 1} chytit (ExceptionType1 e2) {// Kód pro zpracování výjimky 2}
- Nakonec : Klíčové slovo Final se používá k vytvoření bloku kódu v bloku try. Jedná se o konečný kód, který vám pomůže provést bez ohledu na výskyt výjimky
Snaž se {//Kód} chytit (ExceptionType1 e1) {// Chytit blok} chytit (ExceptionType2 e2) {// Chytit blok} chytit (ExceptionType3 e3) {// Chytit blok} Konečně {// Konečný blok se vždy provede.}
Metody pro zobrazení výjimky
K zobrazení informací o výjimce můžete také použít následující metody:
- printStackTrace () : Tato funkce vytiskne trasování zásobníku, název výjimky a další užitečný popis.
- toString () : Tato funkce vrací textovou zprávu popisující název a popis výjimky.
- getMessage () : Pomáhá zobrazit popis výjimky.
Souhrn:
- Výjimkou je chyba, ke které dojde v době provádění programu.
- Try-catch: Tato metoda může zachytit výjimky, které používají kombinaci klíčových slov try and catch.
- Více úlovků vám pomůže zvládnout každý typ výjimky samostatně pomocí samostatného bloku kódu.
- Klíčové slovo Throw se používá k vyvolání výjimky za účelem jeho zpracování v době běhu.
- printStackTrace (): Tato funkce vytiskne trasování zásobníku, název výjimky a další užitečný popis
- toString (): Tato funkce vrací textovou zprávu popisující název a popis výjimky.
- getMessage (): Pomáhá zobrazit popis výjimky.