top 25 selenium webdriver commands that you should know
Najlepšie príkazy selenového WebDriveru - Fenomenálny sprievodca pre testerov automatizácie
Selenium WebDriver je jedným z najpopulárnejších nástrojov na automatizáciu otvoreného webu. Väčšina mojich kolegov testerov automatizácie uprednostňuje kombináciu WebDriver s Javou.
V tomto výučbe sa budem venovať 25 bežne používaným príkazom Selenium WebDriver spolu s ich príslušnou syntaxou a jednoduchými príkladmi pre vaše ľahké pochopenie.
Čo sa dozviete:
- Typy príkazov vo WebDriveri
- Najlepšie 7 príkazov selénu s podrobnosťami
- Zoznam 25 ďalších populárnych príkazov a príkladov WebDriver
- # 1) get ()
- # 2) getCurrentUrl ()
- # 3) findElement (podľa, podľa) a kliknite na ()
- # 4) je Povolené ()
- # 5) findElement (od, od) s sendKeys ()
- # 6) findElement (podľa, podľa) s getText ()
- # 7) Odoslať ()
- # 8) findElements (podľa, podľa)
- # 9) findElements (podľa, podľa) s veľkosťou ()
- # 10) pageLoadTimeout (čas, jednotka)
- # 11) implicitneWait ()
- # 12) untill () a visibilityOfElementLocated ()
- # 13) untill () a alertIsPresent ()
- # 14) getTitle ()
- # 15) Vyberte
- # 16) navigovať ()
- # 17) getSc ScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () a prijať (), odvolať () a sendKeys ()
- # 21) getWindowHandle () a getWindowHandles ()
- # 22) getConnection ()
- # 23) POTOM
- # 24) assertEquals (), assertNotEquals (), assertTrue () a assertFalse ()
- # 25) zatvorte () a ukončite ()
- Záver
- Odporúčané čítanie
Typy príkazov vo WebDriveri
V posledný selénový tutoriál , diskutovali sme o rôzne typy varovaní sa vyskytli pri testovaní webových aplikácií a ich účinných spôsobov zaobchádzania. Dlho sme diskutovali o oboch typoch varovaní, t. J. „Webové upozornenia“ aj „Okenné upozornenia“. Tiež sme vás oboznámili s ešte ďalším obslužným programom založeným na prostredí Java s názvom „Robot Class“ na prácu s vyskakovacími oknami založenými na systéme Windows.
Pokrok vpred táto séria výučbových programov Selenium WebDriver , tlačili by sme ďalej rôzne bežne a bežne používané príkazy selénu WebDriver . Presne a stručne prediskutujeme každý z týchto príkazov selénu, aby ste boli schopní tieto príkazy efektívne používať, kedykoľvek nastane situácia.
Každý automatizovaný pracovný súbor Java začína vytvorením odkazu na webový prehliadač, ktorý by sme chceli použiť, ako je uvedené v nasledujúcej syntaxi.
Existuje niekoľko metód, ktoré sú k dispozícii z rozhrania Webdriver. Tieto metódy sú prístupné pomocou premennej inštancie vodič v jednoduchom formáte driver.methodName (); . Všetky tieto automatizačné projekty zahŕňajú volanie týchto metód a porovnanie a vyhodnotenie toho, čo skutočne vrátia.
Zjednodušene môžeme príkazy Webdriveru všeobecne klasifikovať ako:
- Príkazy prehľadávača,
- Dostávať príkazy,
- Navigačné príkazy,
- Príkazy webelementu,
- Akčné príkazy a
- Výsledné príkazy.
Z hľadiska manuálneho testovania sa o výsledku testu rozhoduje buď PASS, alebo FAIL z príkazov Result, ktoré zvyčajne porovnávajú očakávané a skutočné výsledky a ostatné sú kroky Testcase.
Najlepšie 7 príkazov selénu s podrobnosťami
Len pre približnú predstavu, budeme diskutovať o nasledujúcich príkazoch Selenium WebDriver a ich rôznych verziách:
- dostať () metódy
- Vyhľadanie odkazov podľa linkText () a partialLinkText ()
- Výber viacerých položiek v rozbaľovacej ponuke
- Odoslanie formulára
- Zaobchádzanie s prvkami iframe
- Zavrieť() a skončiť () metódy
- Spracovanie výnimiek
# 1) metódy get ()
Príkaz WebDriver | Využitie |
---|---|
getAttribute () | • Príkaz sa používa na získanie hodnoty zadaného atribútu • Príkaz vyžaduje jeden parameter reťazca, ktorý odkazuje na atribút, ktorého hodnotu sa snažíme poznať, a vo výsledku vráti hodnotu reťazca. driver.findElement (By.id ('findID')). getAttribute ('hodnota'); |
dostať () | • Príkaz spustí nový prehľadávač a otvorí sa zadaná adresa URL v inštancii prehliadača • Príkaz prijíma jeden parameter typu reťazca, ktorým je zvyčajne adresa URL testovanej aplikácie • Používateľom Selen IDE môže príkaz vyzerať veľmi podobne ako príkaz open driver.get ('https://google.com'); |
getClass () | Príkaz sa používa na načítanie objektu Class ktorá predstavuje runtime triedu tohto objektu driver.getClass (); |
getCurrentUrl () | • Príkaz sa používa na získanie adresy URL webovej stránky, na ktorú používateľ v súčasnosti pristupuje • Príkaz nevyžaduje žiadny parameter a vráti hodnotu reťazca driver.getCurrentUrl (); |
getPageSource () | • Príkaz sa používa na načítanie zdroja stránky webovej stránky, na ktorú používateľ momentálne pristupuje • Príkaz nevyžaduje žiadny parameter a vráti hodnotu reťazca • Príkaz je možné na zistenie rôznych operácií s reťazcami, ako napríklad contains (), použiť prítomnosť zadanej hodnoty reťazca boolean result = driver.getPageSource (). contains ('String to find'); |
getTitle () | • Príkaz sa používa na získanie názvu webovej stránky, na ktorej používateľ práve pracuje. Ak webová stránka nemá žiadny názov, vráti sa nulový reťazec • Príkaz nevyžaduje žiadny parameter a vráti orezanú hodnotu reťazca Názov reťazca = driver.getTitle (); |
getText () | • Príkaz sa používa na načítanie vnútorného textu zadaného webového prvku • Príkaz nevyžaduje žiadny parameter a vráti hodnotu reťazca • Je to tiež jeden z často používaných príkazov na overenie zobrazených správ, štítkov, chýb atď na webových stránkach. Reťazec Text = driver.findElement (By.id ('Text')). GetText (); |
getWindowHandle () | • Príkaz sa používa na riešenie situácie, keď máme k dispozícii viac ako jedno okno. • Príkaz nám pomáha prepnúť do novootvoreného okna a vykonať akcie v novom okne. Používateľ môže tiež prepnúť späť na predchádzajúce okno, ak si to želá. private String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). okno (winHandleBefore); |
getWindowHandles () | • Príkaz je podobný príkazu „getWindowHandle ()“ s jemným rozdielom, že pomáha pri riešení viacerých okien, t. J. Keď sa musíme zaoberať viac ako 2 oknami. |
Fragment kódu pre funkciu „getWindowHandles ()“ je uvedený nižšie:
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) Vyhľadanie odkazov pomocou odkazov linkText () a partialLinkText ()
Dovoľte nám prístup na stránky „google.com“ a „abodeqa.com“ pomocou linkText () a partialLinText () metódy WebDriveru.
K vyššie uvedeným odkazom je možné získať prístup pomocou nasledujúcich príkazov:
vodič .findElement (By.linkText ( „Google“ )). kliknite ();
vodič .findElement (By.linkText ( AbodeQA )). kliknite ();
Príkaz vyhľadá prvok pomocou textu odkazu a potom na tento prvok klikne, čím by sa používateľ presmeroval na príslušnú stránku.
K vyššie uvedeným odkazom je možné získať prístup aj pomocou nasledujúcich príkazov:
vodič .findElement (By.partialLinkText ( „Goo“ )). kliknite ();
vodič .findElement (By.partialLinkText ( „Príbytok“ )). kliknite ();
Vyššie uvedené dva príkazy vyhľadajú prvky na základe podreťazca odkazu uvedeného v zátvorke, a teda čiastočný reťazec LinkLinkText () vyhľadá webový prvok so zadaným podreťazcom a potom naň klikne.
# 3) Výber viacerých položiek v rozbaľovacej ponuke
Existujú predovšetkým dva druhy rozbaľovacích ponúk:
- Rozbaľovacia ponuka s jedným výberom : Rozbaľovacia ponuka, ktorá umožňuje výber iba jednej hodnoty súčasne.
- Rozbaľovacia ponuka s viacnásobným výberom : Rozbaľovacia ponuka, ktorá umožňuje výber viacerých hodnôt súčasne.
Zvážte kód HTML uvedený nižšie pre rozbaľovaciu ponuku, ktorá umožňuje výber viacerých hodnôt súčasne.
Red Green Yellow Grey
Fragment kódu nižšie ilustruje viacnásobný výber v rozbaľovacej ponuke.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) Odoslanie formulára
Väčšina alebo takmer všetky webové stránky majú formuláre, ktoré je potrebné vyplniť a odoslať počas testovania webovej aplikácie. Používateľ sa môže stretnúť s niekoľkými typmi formulárov, ako je prihlasovací formulár, registračný formulár, formulár na odovzdanie súboru, formulár na vytvorenie profilu atď.
V serveri WebDriver sa používateľ využíva metódou, ktorá je špeciálne vytvorená na odoslanie formulára. Používateľ môže tiež použiť metódu kliknutia na kliknutie na tlačidlo odoslať ako náhradu za tlačidlo odoslať.
Skontrolujte útržok kódu uvedený nižšie vo formulári „nový používateľ“:
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
Hneď ako ovládací prvok programu nájde metódu odoslania, vyhľadá prvok a spustí príkaz Predložiť() metóda na nájdenom webovom prvku.
# 5) Zaobchádzanie s prvkami iframe
Počas automatizácie webových aplikácií môžu nastať situácie, keď sa od nás vyžaduje, aby sme v okne spracovali viac rámcov. Preto je vývojár testovacích skriptov povinný prepínať medzi rôznymi rámcami alebo prvkami iframe.
Skratka vloženého rámca ako iframe sa používa na vloženie iného dokumentu do aktuálneho dokumentu HTML alebo jednoducho webovej stránky na inú webovú stránku povolením vnorenia.
Zvážte nasledujúci kód HTML, ktorý má na webovej stránke prvok iframe:
Software Testing Help - iframe session
Vyššie uvedený kód HTML ilustruje prítomnosť vloženého prvku iframe do iného prvku iframe. Od užívateľa sa teda vyžaduje, aby mal najskôr prístup k nadradenému prvku iframe, aby mal prístup k podradenému prvku iframe. Po vykonaní požadovanej operácie môže byť od používateľa vyžadované, aby sa vrátil späť do nadradeného rámca iframe a vysporiadal sa s ďalším prvkom webovej stránky.
Je nemožné, ak sa používateľ pokúsi získať priamy prístup k podradenému prvku iframe bez toho, aby najskôr prešiel k nadradenému prvku iframe.
Vyberte iframe podľa id
vodič .switchTo (). rám ( „ ID rámu „ );
Vyhľadanie rámca iframe pomocou značky tagName
Pri vyhľadávaní prvku iframe môže používateľ čeliť problémom, ak prvku iframe nie sú pripísané štandardné vlastnosti. Vyhľadanie rámu a prechod na neho sa stáva zložitým procesom. Na vyrovnanie sa s situáciou sa používateľovi pomocou nástroja tagName podobným spôsobom, akým v WebDriveri nájdeme akýkoľvek iný webový prvok, vyhľadá rámec iframe.
driver.switchTo (). frame (driver.findElements (By.tagName („iframe“). get (0));
Vyššie uvedený príkaz vyhľadá prvý webový prvok so zadaným tagName a prepne sa na tento iframe. „Get (0) sa používa na vyhľadanie prvku iframe s hodnotou indexu.“ V súlade s našim HTML kódom by teda vyššie uvedená syntax kódu viedla ovládací prvok programu k prepnutiu na „ParentFrame“.
Vyhľadanie rámca iframe pomocou indexu:
a) rám (index)
driver.switchTo (). rám (0);
b) rám (Názov rámca)
driver.switchTo (). rám („názov rámca“);
c) rám (prvok WebElement)
Vyberte nadradené okno
driver.switchTo (). defaultContent ();
Vyššie uvedený príkaz vráti používateľa späť do pôvodného okna, tj. Z oboch rámcov iframe.
# 6) metódy close () a quit ()
V aplikácii WebDriver existujú dva typy príkazov na zatvorenie inštancie webového prehľadávača.
a) zavrieť () : Metóda close () WebDriveru zavrie okno webového prehľadávača, na ktorom používateľ momentálne pracuje, alebo môžeme povedať aj okno, ku ktorému WebDriver momentálne pristupuje. Príkaz nevyžaduje žiadny parameter ani nevracia žiadnu hodnotu.
b) skončiť () : Na rozdiel od metódy close (), metóda quit () zatvorí všetky okná, ktoré program otvoril. Rovnako ako metóda close (), ani príkaz nevyžaduje žiadny parameter, ani nevracia žiadnu hodnotu.
Prečítajte si nižšie uvedené úryvky kódu:
vodič .Zavrieť(); // zatvorí iba jedno okno, ku ktorému má momentálne prístup inštancia WebDriver
vodič .quit (); // zatvorí všetky okná, ktoré otvorila inštancia WebDriver
# 7) Spracovanie výnimiek
Výnimkou sú podmienky alebo situácie, ktoré neočakávane zastavia vykonávanie programu.
Dôvody takýchto stavov môžu byť:
- Chyby spôsobené používateľom
- Chyby generované programátorom
- Chyby generované fyzickými prostriedkami
Na riešenie týchto neočakávaných podmienok bolo teda konceptualizované spracovanie výnimiek.
Pokiaľ ide o kód Java, ktorý implementujeme pri automatizácii webovej aplikácie, je možné ho uzavrieť do bloku, ktorý je schopný poskytnúť manipulačný mechanizmus proti chybným podmienkam.
Chytanie výnimky
Aby sme zachytili výnimku, použijeme blok kódu uvedený nižšie
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
Ak sa v bloku try / chránenom bloku vyskytne nejaká výnimka, potom kontroly vykonania skontrolujú blok chytania pre zodpovedajúci typ výnimky a odošle mu výnimku bez prerušenia vykonávania programu.
Viaceré úlovkové bloky
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
Vo vyššie uvedenom kóde je pravdepodobné, že sa výnimka zachytí v prvom bloku zachytenia, ak sa typ výnimky zhoduje. Ak sa typ výnimky nezhoduje, bude sa výnimka prechádzať do druhého bloku zachytenia a tretieho bloku zachytenia atď., Kým nebudú navštívené všetky bloky zachytenia.
Podmienky WebDrivera a spracovanie výnimiek
Keď sa usilujeme overiť prítomnosť ľubovoľného prvku na webovej stránke pomocou rôznych podmienených príkazov WebDriver, predpokladá WebDriver, aby bol webový prvok prítomný na webovej stránke. Ak sa webový prvok nenachádza na webovej stránke, podmienené príkazy vyvolajú „NoSuchElementPresentException“. Aby sme sa vyhli zastaveniu vykonávania programu takýmito výnimkami, používame mechanizmy spracovania výnimiek. Prečítajte si útržok kódu uvedený nižšie:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Zoznam 25 ďalších populárnych príkazov a príkladov WebDriver
Ďalej je uvedený zoznam 25 najdôležitejších rutinne používaných príkazov Webdriver, ktoré musí poznať každý automatizačný tester.
Prejdime si podrobne tieto príkazy.
Ďalšie čítanie => Výukový program pre selén WebDriver
# 1) get ()
Príkazom pomocou príkazu get () otvoríte adresu URL v aktuálnom prehliadači.
Nasledujúci príkaz otvorí v prehliadači zadanú adresu URL https://www.softwaretestinghelp.com.
Syntax:
driver.get('https://www.softwaretestinghelp.com');
Vysvetlenie:
- Prejdite na adresu URL https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Príkazom pomocou príkazu getCurrentUrl () skontrolujte správnosť adresy URL.
Nasledujúci príkaz získa aktuálnu adresu URL vo formáte reťazca.
Syntax:
zlúčiť triediť c ++ algoritmus
driver.getCurrentUrl();
Túto metódu zvyčajne používame v príkazoch na kontrolu, či sme podľa očakávania prešli na správnu stránku. Na to musíme použiť Assert, ako je uvedené nižšie Príklad .
Syntax:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
Kde sa očakávaUrl je adresa URL, ktorá sa očakáva vo formáte reťazca.
Vysvetlenie:
- Skontrolujte a overte, či načítaná adresa URL zostáva rovnaká a či je načítaná správna stránka.
# 3) findElement (podľa, podľa) a kliknite na ()
findElement (podľa, podľa) a kliknutím () na kliknete na ľubovoľný prvok webovej stránky.
Metóda findElement (By, by) vyhľadáva a lokalizuje prvý prvok na aktuálnej stránke, ktorý zodpovedá kritériám zadaným ako parameter. Táto metóda sa zvyčajne používa v príkazoch na simuláciu akcií používateľa, ako je kliknutie, odoslanie, zadanie atď.
Nasledujúci príkaz vyhľadá a nájde prvý prvok na webovej stránke s identifikáciou „submit1“ a klikne na ňu, ak nie je zakrytý.
Syntax:
driver.findElement(By.id('submit1')).click();
Element možno nájsť pomocou ID , názov , Trieda názov , Názov značky , Text odkazu & Čiastočný text odkazu , Selektor CSS a Cesta X. .
Vysvetlenie:
- Vyhľadajte požadované tlačidlo Odoslať.
- Kliknite na tlačidlo.
Nasledujúci príkaz vyberie položku zo zoznamu.
Syntax:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Vysvetlenie:
- Vyhľadajte a vyhľadajte položku zoznamu podľa id „name1“.
- Kliknite na túto položku.
# 4) je Povolené ()
isEnabled () na kontrolu, či je prvok povolený alebo zakázaný v selenovom webovom ovládači.
Aby sme skontrolovali, či je na webovej stránke povolený konkrétny prvok, používame metódu isEnabled ().
Syntax:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Vysvetlenie:
- Vyhľadá prvok na webovej stránke podľa cesty xpath a skontroluje, či je prvok povolený.
# 5) findElement (od, od) s sendKeys ()
findElement (By, by) s sendKeys () na zadanie do polí formulára.
Kontroly overenia formulára zadaním rôznych vstupov používateľa, ktoré sa často vyžadujú pri testovaní automatizácie. Na vyhľadanie polí používame findElement (By, by) a sendKeys () na napísanie určitého obsahu do editovateľného poľa.
Príkaz uvedený nižšie používa vyhľadávač mien na vyhľadanie poľa formulára a do neho napíše „Aaron“.
Syntax:
driver.findElement(By.name('name')).sendkeys('Aaron');
Vysvetlenie:
- Vo formulári vyhľadajte požadované pole s menom.
- Zadajte do nej hodnotu „Aaron“.
# 6) findElement (podľa, podľa) s getText ()
findElement (By, by) s getText () na uloženie hodnoty cieľového webového prvku.
GetText () je metóda, ktorá vám poskytne vnútorný text webového prvku. Získať text je text vo vnútri značiek HTML.
Nasledujúci kód nájde prvok s názvom tagu „select“ a dostane text do tagu a uloží ho do rozbaľovacej ponuky s premennými. Teraz je možné použiť program DropDown pre ďalšie akcie v rámci programu.
Syntax:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Vysvetlenie:
- Vyhľadajte požadované pole vo formulári, ktorý má tagName „dropdown1“.
- Vezmite text do svojej značky HTML.
- Uložte text do reťazcového objektu „DropDown“.
# 7) Odoslať ()
Odoslať () na odoslanie webového formulára.
Metódu click (), o ktorej sme hovorili vyššie, je možné použiť na kliknutie na akékoľvek odkazy alebo tlačidlá. Submit () je lepšou alternatívou k click (), ak je prvkom, na ktorý sa má kliknúť, tlačidlo odoslať. Tlačidlo odoslať sa nachádza vo vnútri značky HTML „formulára“ a typ tlačidla je „odoslať“ (nie „tlačidlo“).
Funkcia submit () uľahčuje život automatickým nájdením tlačidla a metódy, ktorú je možné pridať do ľubovoľného iného poľa, napríklad mena alebo e-mailovej adresy. V prípade kliknutia musíme použiť metódu findElement (By, by) a určiť správne lokátory.
V niektorých scenároch, v ktorých sa akcia vykonáva pomocou iných prvkov ako tlačidla, úlohy Submit () a Click () nebudú.
Syntax:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Vysvetlenie:
- Vyhľadajte prvok v danej ceste x s názvom ‘komentáre’.
- Odošlite formulár.
# 8) findElements (podľa, podľa)
findElements (By, by), ak chcete získať zoznam webových prvkov.
Niekedy môžeme chcieť vytlačiť alebo urobiť akciu na zozname webových prvkov, ako sú odkazy alebo vstupné polia na webovej stránke. V takom prípade použijeme findElements (By, by).
Syntax:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Vysvetlenie:
- Zoznam všetkých webových prvkov so zadanou cestou xpath je uložený v zozname webových prvkov allChoices.
# 9) findElements (podľa, podľa) s veľkosťou ()
findElements (By, by) s veľkosťou () na overenie prítomnosti prvku.
findElements (By, by) možno použiť na overenie, či sa prvok skutočne nachádza na webovej stránke.
Nasledujúci príkaz sa používa, ak chceme overiť, či sa na webovej stránke nachádza prvok s konkrétnym lokátorom. Ak je veľkosť ()! = 0, prvok je prítomný.
Syntax:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
Vysvetlenie:
- Vyhľadávací prvok je zadaný v xpath s ID „checkbox2“.
- Podľa veľkosti zoznamu prvkov bude boolean checkIfElementPresent nastavený na hodnotu TRUE alebo FALSE.
# 10) pageLoadTimeout (čas, jednotka)
pageLoadTimeout (čas, jednotka), ak chcete nastaviť čas načítania stránky.
Niekedy z dôvodu problémov so serverom alebo oneskoreniam v sieti môže načítanie stránky trvať dlhšie ako obvykle. Môže to spôsobiť chybu v programe. Aby sme sa tomu vyhli, nastavili sme čas čakania a pageLoadTimeout () je jednou z takýchto metód. Spravidla bude nasledovať príkaz get ().
Syntax:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Vysvetlenie:
- Počkajte 500 sekúnd, kým sa stránka načíta.
# 11) implicitneWait ()
implicitlyWait () na nastavenie času čakania pred vyhľadaním a vyhľadaním webového prvku.
Čo sa stane, ak sa webový ovládač pokúsi vyhľadať prvok pred načítaním webovej stránky a zobrazením prvku? Bude vyhodená NoSuchElementExeption. Aby sme sa tomu vyhli, môžeme pridať príkaz na implicitné počkanie určitého času pred nájdením prvku.
Syntax:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Vysvetlenie:
- Pred vykonaním ďalšieho riadku v kóde implicitne počkajte 1 000 sekúnd.
# 12) untill () a visibilityOfElementLocated ()
untill () z WebdriverWait a visibilityOfElementLocated () z ExpectedConditions na výslovné čakanie, kým je prvok viditeľný na webovej stránke.
Riešenie prípadov, keď elementu trvá príliš dlho, kým je viditeľný na webovej stránke so softvérom, je implicitné čakanie komplikované. V takom prípade môžeme napísať komentár a čakať, kým sa prvok objaví na webovej stránke. Tento príkaz používa kombináciu metódy do () z triedy WebdriverWait a metódy visibilityOfElementLocated () z triedy ExpectedConditions.
Syntax:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
Vysvetlenie:
- Prvý riadok hovorí, koľko času na čakanie je 10 sekúnd.
- Druhá podmienka hovorí o očakávanej podmienke, na ktorú sa čaká. Tu je to prvok s id’name ’v spomínanej ceste xpath.
# 13) untill () a alertIsPresent ()
untill () z WebdriverWait a alertIsPresent () z ExpectedConditions čakať výslovne na zobrazenie výstrahy.
V niektorých scenároch musíme počkať, kým výstrahy pokračujú v teste. V takom prípade použijeme príkaz pomocou metódy do () z triedy WebdriverWait a metódy alertIsPresent () z triedy ExpectedConditions.
Prečítajte si nasledujúci príkaz:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Vysvetlenie:
- Prvý riadok hovorí, koľko času treba čakať - to je 10 sekúnd.
- Druhá podmienka hovorí o očakávanej podmienke, na ktorú sa čaká. Tu sa zobrazí vyskakovacie okno s upozornením.
# 14) getTitle ()
getTitle () na získanie názvu stránky vo webovom ovládači selénu.
Syntax:
String title = driver.getTitle(); System.out.println(title);
Spravidla sa používa na tlač titulu vo výstupných protokoloch.
Vysvetlenie:
- Získajte názov webovej stránky a uložte ju do nadpisu objektu String.
- Vytlačte hodnotu uloženú v nadpise do výstupných protokolov.
# 15) Vyberte
Vyberte triedu na výber a zrušenie výberu hodnôt z rozbaľovacej ponuky v Selenium WebDriver.
Často máme scenáre týkajúce sa rozbaľovacej ponuky. Na riešenie sa používajú metódy z triedy Select. Podľa scenára môžeme použiť selectByVisibleText (), selectByValue () alebo selectByIndex ().
Syntax:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Vysvetlenie:
- Nájdite rozbaľovaciu ponuku pomocou identifikácie „vybrať“.
- V rozbaľovacej ponuke vyberte viditeľný text „Apple“.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Vysvetlenie:
- Nájdite rozbaľovaciu ponuku pomocou identifikátora „select“.
- V rozbaľovacej ponuke vyberte text s hodnotou „Apple“.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Vysvetlenie:
- Nájdite rozbaľovaciu ponuku pomocou identifikátora „select“.
- V rozbaľovacej ponuke vyberte rozbaľovaciu položku s hodnotou indexu „1“ (druhá položka).
Podobne ako pri výbere môžeme pomocou podobných príkazov zrušiť výber hodnôt z rozbaľovacej ponuky.
Skontrolujte príkazy:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Vysvetlenie:
- Nájdite rozbaľovaciu ponuku pomocou identifikátora „select“.
- V rozbaľovacej ponuke zrušte výber viditeľného textu „Apple“.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Vysvetlenie:
- Nájdite rozbaľovaciu ponuku pomocou identifikátora „select“.
- Z rozbaľovacej ponuky zrušte výber textu s hodnotou „Apple“.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Vysvetlenie:
- Nájdite rozbaľovaciu ponuku pomocou identifikátora „select“.
- Z rozbaľovacej ponuky zrušte výber rozbaľovacej položky s hodnotou indexu „1“ (druhá položka).
navigate () na prechádzanie medzi adresami URL.
Často sa stretávame s prípadmi, keď by sme sa možno chceli navigovať z cieľovej adresy URL a potom ísť späť alebo dopredu. V takýchto prípadoch môžeme namiesto použitia get () použiť navigate (). V Navigate môžeme použiť metódy back () a forward () bez zadania URL.
Syntax:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Vysvetlenie:
- Prejdite na stránku https://www.softwaretestinghelp.com
- Navigovať späť.
- Prejdite dopredu.
# 17) getSc ScreenshotAs ()
getSc ScreenshotAs () na zachytenie celej snímky obrazovky stránky v aplikácii Selenium WebDriver.
Toto je často potrebné na uloženie podrobností o práci alebo niekedy na manuálnu kontrolu výstupov. Nasledujúci príkaz sa používa na vytvorenie snímky obrazovky a uloženie do výstupného súboru.
Syntax:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Vysvetlenie:
- Vytvorte snímku obrazovky a uložte súbor do objektu.
- Uložte súbor na jednotku D ako shot1.png.
# 18) moveToElement ()
moveToElement () z triedy Akcie na simuláciu efektu umiestnenia kurzora myši.
Existujú scenáre, kedy je potrebné umiestniť kurzor myši na webové prvky, napríklad cez ponuku zobraziť submenu, odkazy zobraziť zmeny farieb atď. V týchto prípadoch používame triedu Akcie. Prezrite si nižšie uvedenú syntax triedy Action.
Syntax:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Vysvetlenie
- Vyhľadajte a vyhľadajte webový prvok pomocou div id ‘mainmenu1’.
- Presuňte ukazovateľ myši na prvok.
# 19) dragAndDrop ()
dragAndDrop () z triedy Akcie posuňte prvok a umiestnite ho na iný prvok.
V niektorých scenároch môžeme prvky pretiahnuť. Napríklad, pretiahnite obrázok na scénu. V takom prípade môžeme použiť triedu Actions.
V metóde dragAndDrop odovzdáme dva parametre, Zdrojový lokátor - prvok, ktorý chceme pretiahnuť, a Cieľový lokátor - prvok, na ktorý chceme spadnúť.
Syntax:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
Vysvetlenie:
- Vyhľadajte a vyhľadajte zdrojový webový prvok.
- Vyhľadajte a vyhľadajte cieľový webový prvok.
- Presuňte zdrojový prvok na cieľový prvok.
# 20) switchTo () a prijať (), odvolať () a sendKeys ()
na prepnutie na vyskakovacie upozornenia a ich spracovanie sú použité metódy switchTo () a accept (), decl () a sendKeys () z triedy Alert.
Na prepínanie na výstrahy, vyskakovacie okná a manipuláciu s nimi používame kombináciu prepnúť na() a prijať (), odvolať () metódy z triedy Alert.
Syntax:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Vysvetlenie:
- Prepnite na výstražné okno.
- Do výstrahy zadajte „This Is Softwaretestinghelp“.
- Prijmite výstrahu a zatvorte ju.
alert.dismiss () možno použiť na zrušenie výstrahy.
# 21) getWindowHandle () a getWindowHandles ()
getWindowHandle () a getWindowHandles () na prácu s viacerými Windows v selenovom webovom ovládači.
otázky a odpovede na pohovor so správcom salesforce
Existuje veľa prípadov, keď majú webové aplikácie veľa rámcov alebo okien.
Sú to väčšinou reklamy alebo informačné kontextové okná. S Windows Windows môžeme manipulovať s viacerými oknami. Webdriver ukladá pre každé okno jedinečné ID okna. Toto ID využívame na to, aby sme ich zvládli.
Syntax:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Vyššie uvedené príkazy sa používajú na získanie ID okna aktuálneho okna a všetkých okien. Pozrite si slučku nižšie, aby ste zistili, ako môžeme prejsť do každého okna cez slučku for.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Vysvetlenie:
- Pre každé ID kľučky okna z driver.getWindowHandles () prepnite na toto ID okna.
# 22) getConnection ()
getConnection () z DriverManageru na spustenie pripojenia k databáze.
Na nadviazanie databázového pripojenia používame getConnection z triedy DriverManager.
Syntax:
DriverManager.getConnection(URL, 'username', 'password' )
Vysvetlenie:
- Pripojte sa k databáze pomocou adresy URL a poverení.
# 23) POTOM
BZ na čítanie zo súborov programu Excel.
Pri testovaní na základe údajov často ukladáme vstupy do súboru programu Excel a čítame ich. Aby sme to mohli urobiť vo WebDriveri, importujeme balíček POI a potom použijeme nasledujúci príkaz.
Syntax:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Vysvetlenie:
- Vytvorte súbor čitateľa.
- Prečítajte si súbor.
# 24) assertEquals (), assertNotEquals (), assertTrue () a assertFalse ()
Na porovnanie výsledkov používajú výrazy assertEquals (), assertNotEquals (), assertTrue () a assertFalse ().
Tvrdenia sa používajú na porovnanie očakávaných a skutočných výsledkov. O úspešnom absolvovaní alebo neúspechu v teste sa zvyčajne rozhoduje na základe výsledku tvrdení. V automatizácii sa používajú rôzne typy tvrdení.
Syntax:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Vysvetlenie:
- V prvom príkaze, kedykoľvek sú očakávané a skutočné hodnoty rovnaké, tvrdenie prejde bez výnimky. tj. ak je správa „Tento text“, potom tvrdenie prejde.
- V druhom príkaze, kedykoľvek sú očakávané a skutočné hodnoty rovnaké, tvrdenie zlyhá s výnimkou. Ak je teda správa „Tento text“, tvrdenie zlyhá.
- V treťom príkaze, ak podmienka prejde, prejde tvrdenie. tj. ak je výsledok<0, then the assertion passes.
- Ak štvrtý príkaz splní podmienku, tvrdenie zlyhá. tj. ak je výsledok<0, then the assertion fails.
# 25) zatvorte () a ukončite ()
close () a quit () na zatvorenie okien a inštancií ovládačov.
Tieto príkazy sa používajú na konci každého automatizačného programu.
Syntax:
driver.close() driver.quit()
Vysvetlenie:
Prvý príkaz zatvorí aktuálne okno.
Druhý príkaz ukončí túto inštanciu ovládača a zatvorí každé pridružené okno, ktoré sa otvorí.
Záver
V tomto tutoriáli sme predstavili rôzne bežne a nadmerne používané príkazy WebDriveru. Pokúsili sme sa vysvetliť príkazy vhodnými príkladmi a úryvkami kódu.
Snažil som sa čo najlepšie vysvetliť najobľúbenejšie príkazy WebDriver, ktoré bežne používame v každodennej práci. Tieto príkazy vám umožnia ľahkú prácu so selénom.
Dúfam, že to bolo pre vás zaujímavé a dobre informované.
Ste automatizačný tester, ktorý vyskúšal niektorý z vyššie uvedených príkazov? Alebo sme prišli o nejaké príkazy, ktoré používate vo vyššie uvedenom zozname?
Nasledujúci kurz č. 18 : V nadchádzajúcom tutoriáli by sme diskutovali o Webové tabuľky, rámce a dynamické prvky ktoré sú nevyhnutnou súčasťou každého webového projektu. Pokryjeme aj spracovanie výnimiek dôležitú tému podrobnejšie v jednom z pripravovaných selénových tutoriálov.
Odporúčané čítanie
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Úvod do softvéru Selenium WebDriver - Výučba selénu č. 8
- Ako spustiť selenový webový ovládač v rôznych populárnych prehliadačoch
- Implementácia nášho prvého skriptu WebDriver - výučba selénu WebDriver č. 10
- Časté otázky o seléne
- Ako zaobchádzať s upozorneniami alebo vyskakovacími oknami v ovládači Selenium WebDriver - selén - návod č
- Výukový program GeckoDriver Selenium: Ako používať GeckoDriver v selénových projektoch
- Implicitné a explicitné čakanie v ovládači selénu WebDriver (typy čakania na selén)