top 10 selenium exceptions
Spracovanie výnimiek selénu WebDriver pomocou rámca spracovania výnimiek - selén výučba # 19
Získanie výnimky v kóde automatizácie je veľmi bežné. „Výnimka“, ako naznačuje toto slovo, je zvláštny alebo neobvyklý prípad.
Vykonávanie automatizačného kódu zvyčajne nemusí prebiehať podľa očakávaní kvôli mnohým faktorom, ktoré sa podieľajú na vykonávaní, ako sú problémy so stabilitou siete, problémy s internetom, stabilita servera atď. Mohli by sme dostať výnimky z dôvodu nedostatočnej doby čakania alebo nesprávnych syntaxí, parametrov atď.
V poslednom výučbe WebDriver sme sa dozvedeli o 3 rôznych typoch dôležitých webových prvkov, ako je Webové tabuľky, rámy a dynamické prvky a mechanizmy ich manipulácie v selénovom písme
Predtým, ako v tejto príručke napredujete Výcvik selénu série, tu v tomto návode sa dozvieme viac typy výnimiek a spôsob zaobchádzania s výnimkami v skriptoch Java a Selenium . Vývojári / testeri používajú rámec na spracovanie výnimiek na spracovanie výnimky v skriptoch selénu.
Čo sa dozviete:
- Čo je to výnimka?
- Výhody a nevýhody prístupu vyhnúť sa manipulácii
- Typy výnimiek v prostredí Java a selénu
- Spracovanie výnimiek
- Bežné výnimky v selenovom WebDriveri
- Vyvarovanie sa bežných výnimiek a zaobchádzanie s nimi
- # 1) org.openqa.selenium.NoSuchElementException
- # 2) org.openqa.selenium.NoSuchWindowException
- # 3) org.openqa.selenium.NoSuchFrameException
- # 4) org.openqa.selenium.NoAlertPresentException
- # 5) org.openqa.selenium.InvalidSelectorException
- # 6) org.openqa.selenium.ElementNotVisibleException
- # 7) org.openqa.selenium.ElementNotSelectableException
- # 8) org.openqa.selenium.TimeoutException
- # 9) org.openqa.selenium.NoSuchSessionException
- # 10) org.openqa.selenium.StaleElementReferenceException
- Záver
- Odporúčané čítanie
Čo je to výnimka?
Výnimkou sú udalosti, kvôli ktorým program java končí náhle bez poskytnutia očakávaného výstupu. Java poskytuje rámec, v ktorom môže používateľ spracovávať výnimky.
Proces spracovania výnimiek sa nazýva spracovanie výnimiek.
Je potrebné zaobchádzať s výnimkami, pretože narušujú normálny priebeh vykonávania programu. Jedným z dôležitých zámerov spracovania výnimiek je zabrániť tomuto prerušeniu a pokračovať vo vykonávaní programu. Niekedy možno budete chcieť vykonať určité série akcií pri výskyte určitej výnimky.
Keď dôjde k výnimke, vytvorí sa objekt výnimky, ktorý sa technicky označuje ako „ Vyhodenie výnimky “ a pridáme Skús chytiť bloky ako,
try { // Protected code } catch (ExceptionName e) { // Catch block }
# 1) Kus kódu, ktorý by mohol spôsobiť výnimku, je pridaný do bloku Try.
#dva) Príkaz Catch zachytáva výnimku a berie ju ako parameter.
# 3) Ak nie je vyvolaná žiadna výnimka, vykoná sa príkaz try a nie príkaz catch.
Príklad : Ak selénový skript zlyhá z dôvodu nesprávneho lokátora, potom by mal byť vývojár schopný pochopiť dôvod zlyhania. Toho je možné ľahko dosiahnuť, ak sa v programe s výnimkami zaobchádza správne.
Podľa mojich skúseností je najlepšie pokúsiť sa vyhnúť sa výnimkám WebDriveru, kedykoľvek je to možné, a zachytiť skutočne výnimočné prípady. Použite try / catch na riešenie vecí, ktoré sa pokazia a sú mimo moju kontrolu.
Vyhýbajte sa tým, ktorým dokážem chytiť ostatných!
Toto je najlepšia stratégia, ktorá sa mi osvedčila.
Napríklad, zvážte testovaciu stránku, ktorej načítanie na testovacom serveri trvá viac ako zvyčajne. Pri vykonávaní akcií na tejto stránke budeme často dostávať výnimky. Takže namiesto toho, aby sme to vždy len chytili, môžeme
- Pridajte príkaz čakania a pokúste sa vyhnúť výnimke
- Pomocou príkazu „Try / Catch“ vyskúšajte, či nastal skutočne výnimočný prípad
Tým sa znižuje šanca na výnimky.
Výhody a nevýhody prístupu vyhnúť sa manipulácii
Výhody | Nevýhody |
---|---|
1) Tento prístup znižuje šance na získanie výnimiek. | 1) Zvyšuje riadky kódov, pretože pridávate ďalší kód, aby ste sa vyhli výnimkám |
Ak sa výnimka stále zachytí, bude to 2) skutočne výnimočný prípad, ktorý stojí za to skontrolovať | 2) Mali by ste lepšie porozumieť rozhraniu API webového ovládača, príkazom a výnimkám |
Skráťte čas ladenia. Automatizačný kód je určený na hľadanie chýb a nechcete vidieť príliš veľa nežiaducich 3) výnimiek a hľadať príčiny jednotlivých z nich. | |
4) V bloku Catch sa zaoberáte platnejšími prípadmi | |
5) Znížte počet chybných zlyhaní | |
6) Prehľadnejšia správa |
V tomto návode si povieme Vyvarujte sa a manipulujte prístup k 10 najbežnejším výnimkám v Selenium WebDriver. Predtým si vysvetlíme základné informácie o blokoch Spracovanie výnimiek a Try / Catch.
Typy výnimiek v prostredí Java a selénu
Ďalej sme opísali typy výnimiek a rôzne spôsoby, ako môžeme použiť rámec na spracovanie výnimiek v skriptoch selénu.
Existujú tri druhy výnimiek:
- Začiarknutá výnimka
- Nezačiarknutá výnimka
- Chyba
Hierarchia tried výnimiek a chýb:
# 1) Začiarknutá výnimka: Začiarknutá výnimka je spracovaná počas kompilácie a dáva chybu kompilácie, ak nie je zachytená a spracovaná počas kompilácie.
Príklad : FileNotFoundException , Výnimka IO atď.
# 2) Nezačiarknutá výnimka: V prípade nezačiarknutej výnimky kompilátor nemá mandát na spracovanie. Kompilátor ignoruje počas kompilácie.
Príklad : ArrayIndexoutOfBoundException
# 3) Chyba: Ak je scenár fatálny a program sa nemôže zotaviť, program JVM vyhodí chybu. Chyby nie je možné vyriešiť pomocou bloku try-catch. Aj keď sa používateľ pokúsi chybu spracovať pomocou bloku Try catch, nedokáže sa z chyby spamätať.
Príklad : Chyba tvrdenia , OutOfMemoryError atď.
Spracovanie výnimiek
Blok Try and Catch:
Skús chytiť bloky sa spravidla používajú na spracovanie výnimiek. Typ výnimiek je deklarovaný v bloku úlovkov, ktorý sa očakáva. Keď príde výnimka v bloku vyskúšania, okamžite ovládajte pohyby, aby chytili blok.
Príklad :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); }
V závislosti od typu výnimky môže byť pre jeden blok pokusov viac blokov úlovku.
Príklad :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); } catch(FileNotFoundException file){ file.printStackTrace(); }
hodí Výnimka:
hodí kľúčové slovo v jave sa používa skôr na zahodenie výnimky ako na jej spracovanie. Všetky zaškrtnuté výnimky je možné vyhodiť metódami.
Príklad :
public static void main(String() args) throws IOException { BufferedReader br=new BufferedReader(new FileReader('Data')); while ((line = br.readLine()) != null) { System.out.println(line); } }
konečne blok:
konečne , blok sa vykoná bez ohľadu na vykonanie bloku try-catch a vykoná sa okamžite po dokončení bloku try / catch.
V zásade je možné uzavrieť súbor, pripojiť sa k databáze atď. V konečne bloku.
Príklad :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); } Finally { br.close(); }
Vo vyššie uvedenom príklade BufferReader prúd je uzavretý v konečne bloku. br.close () sa vykoná vždy bez ohľadu na vykonanie bloku try and catch.
Poznámka : konečne blok môže existovať bez blokovania úlovkov. Blokovanie úlovkov nie je potrebné vždy.
Blokov úlovkov môže byť veľa, ale je možné použiť iba jeden blok konečne.
j2ee otázky na pohovor pre starších vývojárov
Hoditeľné : Throwable je nadradená trieda pre chyby a výnimky. Všeobecne je ťažké zvládnuť chyby v jave. Ak si programátor nie je istý typom chyby a výnimky, odporúča sa použiť triedu Throwable, ktorá dokáže zachytiť chybu aj výnimku.
Príklad :
try { br = new BufferedReader(new FileReader('Data')); } catch (Throwable t) { t.printStackTrace(); }
Bežné výnimky v selenovom WebDriveri
Selén má svoju vlastnú skupinu výnimiek. Pri vývoji selénových skriptov musí programátor tieto výnimky zvládnuť alebo zrušiť.
Ďalej uvádzame niekoľko príkladov výnimiek v prípade selénu:
Všetky triedy výnimiek za behu v selenickom WebDriveri spadajú pod nadtriedu WebDriverException.
Aj keď v rámci WebDriverException existuje veľa tried výnimiek, nižšie sa bežne stretávame.
- NoSuchElementException
- NoSuchWindowException
- NoSuchFrameException
- NoAlertPresentException
- InvalidSelectorException
- ElementNotVisibleException
- ElementNotSelectableException
- Výnimka časového limitu
- NoSuchSessionException
- StaleElementReferenceException
Detaily :
ElementNotVisibleException : Ak sa selén pokúsi nájsť prvok, ale prvok nie je na stránke viditeľný
NoAlertPresentException : Ak sa používateľ pokúsi spracovať výstražné okno, ale výstraha sa nenachádza.
NoSuchAttributeException : Pokúšate sa získať hodnotu atribútu, ale atribút nie je v DOM k dispozícii.
NoSuchElementException : Táto výnimka je spôsobená prístupom k prvku, ktorý nie je na stránke k dispozícii.
WebDriverException : Výnimka nastane, keď kód nedokáže inicializovať WebDriver.
Vyvarovanie sa bežných výnimiek a zaobchádzanie s nimi
Poďme diskutovať o prístupe Vyvarujte sa a zaobchádzajte s vyššie uvedenými výnimkami:
# 1) org.openqa.selenium.NoSuchElementException
Táto bežne viditeľná trieda výnimiek je podtriedou NotFoundException trieda. Výnimka nastane, keď WebDriver nedokáže nájsť a nájsť prvky.
Zvyčajne sa to stane, keď tester napíše nesprávny lokátor prvkov v metóde findElement (By, by).
Zvážte, že v nasledujúcom príklade bolo správne ID pre textové pole „firstfield“, ale tester ho nesprávne uviedol ako „fistfield“. V takom prípade nemôže WebDriver nájsť prvok a org.openqa.selenium.NoSuchElementException bude vyhodený
driver.findElement(By.id('submit')).click(); Exception Handling: try { driver.findElement(By.id('submit')).click(); } catch (NoSuchElementException e)
V takom prípade sa vyvolá výnimka, aj keď sa prvok nenačíta.
Vyhýbanie sa a manipulácia : Skúste dať príkaz na čakanie.
Príklad: Nasledujúci príkaz čakania čaká 10 sekúnd na prítomnosť webového prvku s ID „odoslať“. Potom sa to pokúsi kliknúť. Ak je prvok k dispozícii, ale kliknutie stále zlyhá, je zachytená výnimka.
Používanie oneskoreného času je bežnou praxou v automatizácii testov na vytvorenie pauzy medzi krokmi. Pridaním Try / Catch zaisťujeme, že program bude pokračovať, aj keď čakanie nemohlo pomôcť.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.presenceOfElementLocated(By.id('submit'))); try { driver.findElement(By.id('submit')).click(); } catch (WebDriverException e) { System.out.println(“An exceptional case.”); } } catch (TimeOutException e) { System.out.println(“WebDriver couldn’t locate the element”); }
# 2) org.openqa.selenium.NoSuchWindowException
NoSuchWindowException prichádza pod NotFoundException trieda. Toto sa vyhodí, keď sa WebDriver pokúsi prepnúť na neplatné okno.
Nasledujúci kód môže vyvolať org.openqa.selenium.NoSuchWindowException, ak kľučka okna neexistuje alebo nie je k dispozícii na prepnutie.
driver.switchTo (). okno (handle_1);
Vyhýbanie sa a manipulácia : Použili by sme okenné kľučky, aby sme získali množinu aktívnych okien a potom s nimi vykonávali akcie.
V nasledujúcom príklade sa pre každú kľučku okna vykoná prepnutie ovládača na. Preto sa znížila šanca na odovzdanie nesprávneho parametra okna.
for (String handle : driver.getWindowHandles()) { try { driver.switchTo().window(handle); } catch (NoSuchWindowException e) { System.out.println(“An exceptional case”); } }
# 3) org.openqa.selenium.NoSuchFrameException
Keď sa WebDriver pokúša prepnúť na neplatný rámec, vyvolá sa NoSuchFrameException v rámci triedy NotFoundException.
Nižšie uvedený kód môže vyvolať org.openqa.selenium.NoSuchFrameException, ak rámec „frame_11“ neexistuje alebo nie je k dispozícii.
driver.switchTo (). frame („frame_11“);
Spracovanie výnimiek:
try { driver.switchTo().frame('frame_11'); } catch (NoSuchFrameException e)
V takom prípade sa vyvolá výnimka, aj keď sa rám nenačíta.
Vyhýbanie sa a manipulácia : Skúste dať povel na počkanie.
V nasledujúcom príklade čaká WebDriver 10 sekúnd na sprístupnenie rámca. Ak je rám k dispozícii a stále existuje výnimka, potom sa zachytí.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.frameToBeAvaliableAndSwitchToIt(frame_11)); try { driver.switchTo().frame('frame_11'); } catch (WebDriverException e) { System.out.println(“An exceptional case”); } } catch (TimeOutException e) { System.out.println(“WebDriver couldn’t locate the frame”); }
# 4) org.openqa.selenium.NoAlertPresentException
NoAlertPresentException pod NotFoundException sa vyhodí, keď sa WebDriver pokúsi prepnúť na výstrahu, ktorá nie je k dispozícii.
org.openqa.selenium.NoAlertPresentException bude hodené Ak je pod automatizačným kódom volanie akceptuje operáciu () v triede Alert (), keď výstraha ešte nie je na obrazovke.
driver.switchTo (). alert (). accept ();
Spracovanie výnimiek:
try { driver.switchTo().alert().accept(); } catch (NoSuchAlertException e)
V takom prípade sa vyvolá výnimka, aj keď sa výstraha nenačíta úplne.
Vyhýbanie sa a manipulácia : Vždy používajte výslovné alebo plynulé čakanie na konkrétny čas vo všetkých prípadoch, keď sa očakáva výstraha. Ak je výstraha k dispozícii a stále existuje výnimka, bude zachytená.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.alertIsPresent()); try { driver.switchTo().alert().accept(); } catch (NoAlertPresentException e) { System.out.println(“An exceptional case”); } } catch (TimeOutException e) System.out.println(“WebDriver couldn’t locate the Alert”); }
# 5) org.openqa.selenium.InvalidSelectorException
Táto podtrieda NoSuchElementException trieda nastane, keď je selektor nesprávny alebo syntakticky neplatný. Táto výnimka sa vyskytuje bežne, keď sa používa lokátor XPATH.
Zvážte nasledujúci príklad:
qa testovacie otázky na pohovor pre skúsených
clickXPathButtonAndWait („// tlačidlo (@ type =‘ tlačidlo ’) (100)”);
To by vyhodilo InvalidSelectorExeption, pretože syntax XPATH je nesprávna.
Vyhýbanie sa a manipulácia : Aby sa tomu zabránilo, mali by sme skontrolovať použitý lokátor, pretože lokátor je pravdepodobne nesprávny alebo nesprávna syntax. Používanie Firebugu na nájdenie xpath môže túto výnimku znížiť.
Nižšie uvedený kód ukazuje, ako to zvládnuť pomocou funkcie Try / Catch
try { clickXPathButtonAndWait('//button(@type='button')'); } catch (InvalidSelectorException e) { }
# 6) org.openqa.selenium.ElementNotVisibleException
ElementNotVisibleException trieda je podtrieda ElementNotInteractableException trieda. Táto výnimka je vyvolaná, keď sa WebDriver pokúsi vykonať akciu na neviditeľnom webovom prvku, s ktorým nemožno interagovať. To znamená, že webový prvok je v skrytom stave.
Napríklad, v nižšie uvedenom kóde, ak je typ tlačidla s identifikáciou „odoslať“ „skrytý“ v HTML, org.openqa.selenium.ElementNotVisibleException bude vyhodený.
driver.findElement(By.id('submit')).click(); Exception Handling: try { driver.findElement(By.id('submit')).click(); } catch (ElementNotVisibleException e)
V takom prípade sa vyvolá výnimka, aj keď sa stránka nenačítala úplne.
Vyhýbanie sa a manipulácia : Existujú dva spôsoby, ako to urobiť. Môžeme použiť buď čakanie na úplné získanie prvku.
Kód uvedený nižšie čaká na prvok 10 sekúnd. Ak je prvok viditeľný a stále je vyvolaná výnimka, je chytený.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.visibilityOfElementLocated(By.id(”submit”)); try { driver.findElement(By.id('submit')).click(); } catch (WebDriverException e) { System.out.println(“Exceptional case”); } } catch (TimeOutException e) System.out.println(“WebDriver couldn’t find this element visible”); }
# 7) org.openqa.selenium.ElementNotSelectableException
Táto výnimka spadá pod InvalidElementStateException trieda . ElementNotSelectableException označuje, že webový prvok je na webovej stránke, ale nemožno ho zvoliť.
Napríklad, nasledujúci kód môže vyvolať ElementNotSelectableException, ak je zakázané ID „rýchle“.
Vyberte rozbaľovaciu ponuku = nový Vyberte (driver.findElement (By.id („swift“)));
Spracovanie výnimiek:
skúsiť {
Vyberte rozbaľovaciu ponuku = nový Vyberte (driver.findElement (By.id („swift“)));
} chyta (ElementNotSelectableException e)
V takom prípade sa vyvolá výnimka, aj keď sa prvok po chvíli aktivuje.
Vyhýbanie sa a manipulácia : Môžeme pridať príkaz čakania, aby sme počkali, kým na prvok nebude možné kliknúť. Ak stále existuje výnimka, chytí sa.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions. elementToBeClickable(By.id(”swift”)); try { Select dropdown = new Select(driver.findElement(By.id('swift'))); } catch (WebDriverException e) { System.out.println(“Exceptional case”); } } catch (TimeOutException e) System.out.println(“WebDriver found that this element was not selectable.”); }
# 8) org.openqa.selenium . TimeoutException
Táto výnimka nastane, keď dokončenie príkazu trvá dlhšie ako čas čakania. Čakanie sa používa hlavne v WebDriveri, aby sa zabránilo výnimke ElementNotVisibleException.
Niekedy sa testovacia stránka nemusí načítať úplne pred ďalším príkazom v programe. Ak sa WebDriver pokúsi nájsť prvok na webovej stránke pred úplným načítaním stránky, bude vyvolaná výnimka ElementNotVisibleException. Aby sa zabránilo tejto výnimke, pridávajú sa príkazy čakania.
Ak sa však komponenty nenačítajú ani po čakaní, výnimkou org.openqa.selenium . TimeoutException bude vyhodený.
driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);
driver.get („https://www.softwaretestinghelp.com“);
Vo vyššie uvedenom programe je pridané implicitné čakanie 10 sekúnd. Ak stránka www.softwaretestinghelp.com sa nenačíta do 10 sekúnd, bude vyhodená TimeoutException.
Vyhýbanie sa a manipulácia : Aby sme sa tomu vyhli, môžeme manuálne skontrolovať priemerný čas načítania stránky a upraviť čakanie
Alebo môžeme pridať explicitné čakanie pomocou exekútora JavaScriptu, kým sa stránka nenačíta.
V nasledujúcom príklade sa používa vykonávač JavaScriptu. Po navigácii po stránke voláme po dobu 20 sekúnd skript JavaScript document.readyState, kým sa nevráti text „Complete“.
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); wait.until(webDriver -> ((JavascriptExecutor)webDriver).executeScript('return document.readyState').equals('complete')); driver.get('https://www.softwaretestinghelp.com');
# 9) org.openqa.selenium.NoSuchSessionException
Táto výnimka sa vyvolá, keď sa metóda zavolá po ukončení prehliadača pomocou WebDriver.quit (). Môže sa to stať aj kvôli problémom s webovým prehliadačom, ako sú napríklad zlyhania, a server WebDriver nemôže pomocou inštancie ovládača vykonať žiadny príkaz.
Ak chcete vidieť túto výnimku, je možné vykonať nasledujúci kód.
driver.quit ()
Vyberte rozbaľovaciu ponuku = nový Vyberte (driver.findElement (By.id („swift“)));
Vyhýbanie sa a manipulácia : Na spustenie testovacích kufrov Selenium Webdriver si vždy vyberte najnovšiu stabilnú verziu prehliadača.
Túto výnimku je možné znížiť použitím driver.quit () po dokončení všetkých testov. Nesnažte sa ich použiť po každom testovacom prípade. To môže viesť k problémom, keď je inštancia ovládača nulová a nadchádzajúce testovacie prípady sa ju pokúsia použiť bez inicializácie.
Nasledujúci kód vytvorí inštanciu WebDriver v anotácii @BeforeSuite TestiNG a zničí ju v anotácii @AfterSuite TestiNG
@BeforeSuite public void setUp() throws MalformedURLException { WebDriver driver = new FirefoxDriver(); } @AfterSuite public void testDown() { driver.quit(); }
# 10) org.openqa.selenium.StaleElementReferenceException
Táto výnimka hovorí, že webový prvok sa už na webovej stránke nenachádza.
Táto chyba nie je rovnaká ako ElementNotVisibleException.
StaleElementReferenceException je vyvolaná, keď bol v programe bez problémov vytvorený objekt pre konkrétny webový prvok; tento prvok sa už v okne nenachádza. To sa môže stať, ak by došlo k
- Navigácia na inú stránku
- DOM sa obnovil
- Spínač rámu alebo okna
WebElement meno = driver.findElement (By.id („meno“));
driver.switchTo (). window (Child_Window);
element.sendKeys („Áron“);
Vo vyššie uvedenom kóde bol vytvorený objekt firstName a potom bolo prepnuté okno. Potom sa WebDriver pokúsi do poľa formulára napísať „Aaron“. V tomto prípade je vyvolaná StaleElementReferenceException.
Vyhýbanie sa a manipulácia : Potvrďte, že sa akciu pokúšame vykonať v správnom okne. Aby sme sa vyhli problémom z dôvodu obnovenia DOM, môžeme použiť Dynamic Xpath
Poďme si predstaviť ďalší príklad.
Povedzte „id“ poľa užívateľského mena je „username_1“ a XPath bude // * (@ id = ‘firstname_1?) . Po opätovnom otvorení stránky sa identifikátor „id“ môže zmeniť na „ 'krstné meno _11 ‘. V takom prípade test zlyhá, pretože WebDriver nedokázal nájsť prvok. V takom prípade bude vyvolaná StaleElementReferenceException.
V tomto prípade môžeme použiť dynamický xpath ako,
try { driver.findElement(By.xpath(“//*(contains(@id,firstname’))”)).sendKeys(“Aaron”); } catch (StaleElementReferenceException e)
Vo vyššie uvedenom príklade sa používa dynamický XPATH a ak sa výnimka stále nájde, zachytí sa.
Záver
Spracovanie výnimiek je nevyhnutnou súčasťou každého programu Java, ako aj selénového skriptu. Môžeme vytvoriť robustný a optimálny kód podľa riešenie výnimky inteligentným spôsobom . Osvedčeným postupom je tiež spracovávať výnimky v skripte, ktorý vám poskytne lepšiu správu o zlyhaní programu z akýchkoľvek dôvodov.
Tu sme sa pokúsili pokryť proces a rámec spracovania výnimiek, ktoré je potrebné implementovať do selénových skriptov.
Pamätajte, že nie je povinné vždy zaobchádzať s výnimkou v a Skús chytiť blokovať. Môžete tiež udeliť výnimku v závislosti od požiadavky v skripte.
Výnimka by sa nemala ignorovať, pretože porušuje vykonávanie programu. V tomto tutoriáli sme prešli rôznymi výnimkami a spôsobmi, ako znížiť pravdepodobnosť ich získania prostredníctvom manuálnych kontrol a kódov.
Pridaním čakania môžete ovládať niektoré prípady, ako napríklad „NoSuchElementException“, „ElementNotFoundException“, „ElementNotVisibleException“.
Nasledujúci tutoriál # 20 : V nadchádzajúcom tutoriáli by sme diskutovali o sú k dispozícii rôzne typy testovacích rámcov . Tiež by sme študovali výhody a nevýhody použitia plnohodnotného rámcového prístupu pri testovaní automatizácie. Podrobne by sme diskutovali o testovacom dátovom rámci.
Ak máte nejaké otázky týkajúce sa spracovania výnimiek, pošlite ich prosím na webový server Selenium WebDriver.
Odporúčané čítanie
- Výnimky Java a spracovanie výnimiek s príkladmi
- Ako zaobchádzať s upozorneniami alebo vyskakovacími oknami v selenovom webovom ovládači - selénský výukový program č. 16
- Výukový program AutoIt - Stiahnutie, inštalácia a základný skript AutoIt
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Integrácia selénu s JMeter
- Úvod do softvéru Selenium WebDriver - Výučba selénu č. 8
- 30+ najlepších návodov na selén: Naučte sa selén na skutočných príkladoch
- Pracovná príležitosť na voľnej nohe na čiastočný úväzok pre odborníkov na selén