top 25 selenium webdriver commands that you should know
Nejlepší příkazy selenu WebDriver - Fenomenální průvodce pro automatizační testery
Selenium WebDriver je jedním z nejpopulárnějších nástrojů pro automatizaci webů s otevřeným zdrojovým kódem. Většina mých kolegů testerů automatizace dává přednost kombinaci WebDriver s Javou.
V tomto tutoriálu proberu 25 rutinně používaných příkazů Selenium WebDriver spolu s jejich syntaxí a jednoduchými příklady pro vaše snadné pochopení.
Co se naučíte:
- Typy příkazů ve WebDriveru
- Top 7 selenových příkazů s podrobnostmi
- Seznam 25 populárnějších příkazů a příkladů WebDriveru
- # 1) get ()
- # 2) getCurrentUrl ()
- # 3) findElement (podle, podle) a klikněte na ()
- # 4) isEnabled ()
- # 5) findElement (podle, podle) s sendKeys ()
- # 6) findElement (podle, podle) s getText ()
- # 7) Odeslat ()
- # 8) findElements (podle, podle)
- # 9) findElements (podle, podle) s velikostí ()
- # 10) pageLoadTimeout (čas, jednotka)
- # 11) implicitněWait ()
- # 12) untill () a visibilityOfElementLocated ()
- # 13) untill () a alertIsPresent ()
- # 14) getTitle ()
- # 15) Vyberte
- # 16) navigovat ()
- # 17) getSc ScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () a přijmout (), odmítnout () a sendKeys ()
- # 21) getWindowHandle () a getWindowHandles ()
- # 22) getConnection ()
- # 23) POTOM
- # 24) assertEquals (), assertNotEquals (), assertTrue () a assertFalse ()
- # 25) zavřít () a ukončit ()
- Závěr
- Doporučené čtení
Typy příkazů ve WebDriveru
V poslední tutoriál selenu , diskutovali jsme o různé typy upozornění při testování webových aplikací a jejich účinných způsobů zacházení. Dlouhodobě jsme diskutovali o obou typech výstrah, tj. „Webových výstrahách“ a „Okenních výstrahách“. Také jsme vás seznámili s ještě dalším nástrojem založeným na jazyce Java s názvem „Robot Class“ pro zpracování vyskakovacího okna založeného na systému Windows.
Pokrok vpřed tato řada výukových programů pro selen WebDriver , tlačili bychom na různé běžně a běžně používané příkazy selenu WebDriver . Přesně a stručně probereme každý z těchto příkazů selenu, abychom vám umožnili efektivně používat tyto příkazy, kdykoli nastane situace.
Každý automatizovaný pracovní soubor Java začíná vytvořením odkazu na webový prohlížeč, který chceme použít, jak je uvedeno v níže uvedené syntaxi.
Existuje několik metod, které jsou k dispozici z rozhraní Webdriver. Tyto metody jsou přístupné pomocí proměnné instance Řidič v jednoduchém formátu driver.methodName (); . Všechny tyto automatizační projekty zahrnují volání těchto metod a porovnání a vyhodnocení toho, co skutečně vrátí.
Jednoduše řečeno, příkazy Webdriveru můžeme obecně klasifikovat jako:
- Příkazy prohlížeče,
- Získejte příkazy,
- Navigační příkazy,
- Příkazy Webelement,
- Příkazy akce a
- Výsledné příkazy.
Z kontextu ručního testování se o výsledku testu rozhoduje buď PASS nebo FAIL z příkazů Result, které obvykle porovnávají očekávané a skutečné výsledky a zbytek jsou kroky Testcase.
Top 7 selenových příkazů s podrobnostmi
Abychom měli přibližnou představu, budeme diskutovat o následujících příkazech Selenium WebDriver a jejich různých verzích:
- dostat() metody
- Vyhledání odkazů podle linkText () a partialLinkText ()
- Výběr více položek v rozevírací nabídce
- Odeslání formuláře
- Zpracování prvků iframe
- zavřít() a přestat() metody
- Zpracování výjimek
# 1) metody get ()
Příkaz WebDriver | Používání |
---|---|
getAttribute () | • Příkaz se používá k načtení hodnoty zadaného atributu • Příkaz vyžaduje jeden parametr řetězce, který odkazuje na atribut, jehož hodnotu chceme znát, a ve výsledku vrátí hodnotu řetězce. driver.findElement (By.id ('findID')). getAttribute ('hodnota'); |
dostat() | • Příkaz spustí nový prohlížeč a otevře se zadaná adresa URL v instanci prohlížeče • Příkaz přebírá jeden parametr typu řetězce, kterým je obvykle URL testované aplikace • Pro uživatele Selen IDE může příkaz vypadat velmi podobně jako příkaz open driver.get ('https://google.com'); |
getClass () | Příkaz se používá k načtení objektu Class který představuje běhovou třídu tohoto objektu driver.getClass (); |
getCurrentUrl () | • Příkaz se používá k načtení adresy URL webové stránky, na kterou uživatel aktuálně přistupuje • Příkaz nevyžaduje žádný parametr a vrátí hodnotu řetězce driver.getCurrentUrl (); |
getPageSource () | • Příkaz se používá k načtení zdroje stránky webové stránky, na kterou uživatel aktuálně přistupuje • Příkaz nevyžaduje žádný parametr a vrátí hodnotu řetězce • Příkaz lze použít k určení různých řetězcových operací, jako je contains () přítomnost zadané hodnoty řetězce boolean result = driver.getPageSource (). contains ('String to find'); |
getTitle () | • Příkaz se používá k načtení názvu webové stránky, na které uživatel aktuálně pracuje. Pokud webová stránka nemá žádný název, je vrácen nulový řetězec • Příkaz nevyžaduje žádný parametr a vrátí oříznutou hodnotu řetězce Název řetězce = driver.getTitle (); |
getText () | • Příkaz se používá k načtení vnitřního textu zadaného webového prvku • Příkaz nevyžaduje žádný parametr a vrátí hodnotu řetězce • Je to také jeden z často používaných příkazů pro ověřování zobrazovaných zpráv, štítků, chyb atd na webových stránkách. Řetězec Text = driver.findElement (By.id ('Text')). GetText (); |
getWindowHandle () | • Příkaz se používá k řešení situace, kdy máme k dispozici více než jedno okno. • Příkaz nám pomáhá přepnout do nově otevřeného okna a provádět akce v novém okně. Uživatel může také přepnout zpět do předchozího okna, pokud si přeje. soukromý řetězec winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). okno (winHandleBefore); |
getWindowHandles () | • Příkaz je podobný příkazu „getWindowHandle ()“ s jemným rozdílem, že pomáhá vypořádat se s více okny, tj. Když se musíme vypořádat s více než 2 okny. |
Fragment kódu pro „getWindowHandles ()“ je uveden níže:
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) Vyhledání odkazů podle linkText () a partialLinkText ()
Umožněte nám přístup na „google.com“ a „abodeqa.com“ pomocí linkText () a partialLinText () metody WebDriveru.
K výše uvedeným odkazům lze přistupovat pomocí následujících příkazů:
Řidič .findElement (By.linkText ( 'Google' )). klikněte na ();
Řidič .findElement (By.linkText ( AbodeQA )). klikněte na ();
Příkaz vyhledá prvek pomocí textu odkazu a poté na daný prvek klikne, a tím by byl uživatel přesměrován na odpovídající stránku.
K výše uvedeným odkazům lze přistupovat také pomocí následujících příkazů:
Řidič .findElement (By.partialLinkText ( „Goo“ )). klikněte na ();
Řidič .findElement (By.partialLinkText ( 'příbytek' )). klikněte na ();
Výše uvedené dva příkazy vyhledají prvky na základě podřetězce odkazu poskytnutého v závorkách, a tedy partialLinkText () vyhledá webový prvek se zadaným podřetězcem a poté na něj klikne.
# 3) Výběr více položek v rozevírací nabídce
Existují primárně dva druhy rozbalovacích nabídek:
- Rozbalovací nabídka s jedním výběrem : Rozbalovací nabídka, která umožňuje vybrat pouze jednu hodnotu najednou.
- Rozbalovací nabídka pro výběr více položek : Rozbalovací nabídka, která umožňuje výběr více hodnot najednou.
Zvažte níže uvedený HTML kód pro rozevírací nabídku, která může vybrat více hodnot současně.
Red Green Yellow Grey
Fragment kódu níže ilustruje několik výběrů v rozbalovací nabídce.
// 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) Odeslání formuláře
Většina nebo téměř všechny webové stránky mají formuláře, které je třeba vyplnit a odeslat při testování webové aplikace. Uživatel se může setkat s několika typy formulářů, jako je přihlašovací formulář, registrační formulář, formulář pro nahrání souboru, formulář pro vytvoření profilu atd.
Ve WebDriveru je uživatel využíván metodou, která je speciálně vytvořena k odeslání formuláře. Uživatel může také použít metodu kliknutí a kliknout na tlačítko Odeslat jako náhradu za tlačítko Odeslat.
Podívejte se níže na úryvek kódu oproti výše uvedenému formuláři „nový uživatel“:
// 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();
Jakmile tedy ovládací prvek programu najde metodu odeslání, vyhledá prvek a spustí Předložit() metoda na nalezeném webovém prvku.
# 5) Zpracování prvků iframe
Při automatizaci webových aplikací mohou nastat situace, kdy se od nás vyžaduje, abychom v okně řešili více rámců. Proto je vývojář testovacího skriptu povinen přepínat tam a zpět mezi různými snímky nebo prvky iframe.
Zkratka vloženého rámečku jako iframe se používá k vložení dalšího dokumentu do aktuálního dokumentu HTML nebo jednoduše webové stránky na jinou webovou stránku povolením vnoření.
Zvažte následující kód HTML s prvkem iframe na webové stránce:
Software Testing Help - iframe session
Výše uvedený kód HTML ilustruje přítomnost vloženého prvku iframe do jiného prvku iframe. Aby tedy uživatel mohl přistupovat k podřízenému iframe, musí nejprve přejít k nadřazenému iframe. Po provedení požadované operace může být uživatel povinen přejít zpět do nadřazeného iframe, aby se vypořádal s dalším prvkem webové stránky.
Je nemožné, pokud se uživatel pokusí o přímý přístup k podřízenému iframe, aniž by nejprve prošel nadřazeným iframe.
Vyberte iframe podle id
Řidič .switchTo (). rám ( ' ID rámečku ' );
Vyhledání iframe pomocí tagName
Při lokalizaci prvku iframe může uživatel čelit určitým potížím, pokud prvek iframe není přiřazen standardním vlastnostem. Vyhledání rámečku a přepnutí na něj se stává složitým procesem. Aby se situace vyřešila, je uživatel využíván k vyhledání prvku iframe pomocí metody tagName podobné způsobu, jakým najdeme jakýkoli jiný webový prvek ve WebDriveru.
driver.switchTo (). frame (driver.findElements (By.tagName („iframe“). get (0));
Výše uvedený příkaz vyhledá první webový prvek se zadaným tagName a přepne se na tento iframe. „Get (0) se používá k vyhledání iframe s hodnotou indexu.“ V řádcích s naším HTML kódem by tedy výše uvedená syntaxe kódu vedla ovládání programu k přepnutí na „ParentFrame“.
Vyhledání iframe pomocí indexu:
a) rám (index)
driver.switchTo (). frame (0);
b) rámeček (název rámečku)
driver.switchTo (). frame („název rámce“);
c) rám (prvek WebElement)
Vyberte nadřazené okno
driver.switchTo (). defaultContent ();
Výše uvedený příkaz přenese uživatele zpět do původního okna, tj. Z obou iframeů.
# 6) metody close () a quit ()
Ve WebDriveru existují dva typy příkazů k zavření instance webového prohlížeče.
a) zavřít () : Metoda close () WebDriver zavře okno webového prohlížeče, na kterém uživatel aktuálně pracuje, nebo můžeme také říci okno, ke kterému WebDriver aktuálně přistupuje. Příkaz nevyžaduje žádný parametr ani nevrací žádnou hodnotu.
b) ukončit () : Na rozdíl od metody close () metoda quit () zavře všechna okna, která program otevřel. Stejně jako metoda close () ani příkaz nevyžaduje žádný parametr ani nevrací žádnou hodnotu.
Viz níže uvedené fragmenty kódu:
Řidič .zavřít(); // zavře pouze jedno okno, ke kterému aktuálně přistupuje instance WebDriver
Řidič .přestat(); // zavře všechna okna, která byla otevřena instancí WebDriver
# 7) Zpracování výjimek
Výjimkou jsou podmínky nebo situace, které neočekávaně zastaví provádění programu.
Důvody těchto podmínek mohou být:
- Chyby zavedené uživatelem
- Chyby generované programátorem
- Chyby generované fyzickými prostředky
Pro řešení těchto neočekávaných podmínek bylo tedy konceptualizováno zpracování výjimek.
S ohledem na kód Java, který implementujeme při automatizaci webové aplikace, lze uzavřít do bloku, který je schopen poskytnout manipulační mechanismus proti chybným podmínkám.
Chytání výjimky
Abychom zachytili výjimku, použijeme níže uvedený blok kódu
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 }
Pokud se v bloku try / chráněném bloku vyskytne nějaká výjimka, pak ovládací prvky provádění zkontrolují blok catch pro odpovídající typ výjimky a předají mu výjimku bez přerušení provádění programu.
Více bloků úlovku
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
Ve výše uvedeném kódu je pravděpodobné, že se výjimka zachytí v prvním bloku zachycení, pokud se typ výjimky shoduje. Pokud se typ výjimky neshoduje, pak se výjimka projde do druhého bloku zachycení a třetího bloku zachycení atd., Dokud nejsou navštíveny všechny bloky zachycení.
Podmínky WebDriveru a zpracování výjimek
Když se snažíme ověřit přítomnost libovolného prvku na webové stránce pomocí různých podmíněných příkazů WebDriver, předpokládá WebDriver, aby byl webový prvek přítomen na webové stránce. Pokud webový prvek na webové stránce není, vyvolají podmíněné příkazy „NoSuchElementPresentException“. Abychom se vyhnuli takovým výjimkám ze zastavení provádění programu, používáme mechanismy zpracování výjimek. Podívejte se na fragment kódu níže:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Seznam 25 populárnějších příkazů a příkladů WebDriveru
Níže je uveden seznam 25 nejdůležitějších běžně používaných příkazů Webdriver, které musí každý automatizační tester znát.
Projdeme si tyto příkazy jeden po druhém podrobně.
Další čtení => Výukový program pro selen WebDriver
# 1) get ()
Pomocí příkazu get () otevřete adresu URL v aktuálním prohlížeči.
Následující příkaz otevře v prohlížeči zadanou adresu URL https://www.softwaretestinghelp.com.
Syntax:
driver.get('https://www.softwaretestinghelp.com');
Vysvětlení:
- Přejděte na adresu URL https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Pomocí příkazu getCurrentUrl () zkontrolujte, zda je adresa URL správná.
Níže uvedený příkaz získá aktuální adresu URL ve formátu řetězce.
Syntax:
nejlepší čisticí software pro Windows 7
driver.getCurrentUrl();
Tuto metodu obvykle používáme v příkazech ke kontrole, zda jsme podle očekávání přešli na správnou stránku. K tomu musíme použít Assert, jak je uvedeno níže Příklad .
Syntax:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
Kde expectUrl je adresa URL, která se očekává ve formátu řetězce.
Vysvětlení:
- Zkontrolujte a ověřte, že načtená adresa URL zůstává stejná a je načtena správná stránka.
# 3) findElement (podle, podle) a klikněte na ()
findElement (podle, podle) a kliknutím na () kliknete na libovolný prvek webové stránky.
Metoda findElement (By, by) prohledá a vyhledá první prvek na aktuální stránce, který odpovídá kritériím uvedeným jako parametr. Tato metoda se obvykle používá v příkazech k simulaci akcí uživatelů, jako je kliknutí, odeslání, psaní atd.
Níže uvedený příkaz vyhledá a vyhledá první prvek na webové stránce s id „submit1“ a klikne na něj, pokud není zakryt.
Syntax:
driver.findElement(By.id('submit1')).click();
Prvek lze vyhledat pomocí ID , název , Třída název , Název štítku , Text odkazu & Částečný text odkazu , Výběr CSS a Cesta X. .
Vysvětlení:
- Vyhledejte požadované tlačítko Odeslat.
- Klikněte na tlačítko.
Následující příkaz vybere položku ze seznamu.
Syntax:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Vysvětlení:
- Vyhledejte a najděte položku seznamu podle id „name1“.
- Klikněte na tuto položku.
# 4) isEnabled ()
isEnabled () ke kontrole, zda je prvek povolen nebo zakázán v selenu WebDriver.
Abychom zkontrolovali, zda je na webové stránce povolen určitý prvek, používáme metodu isEnabled ().
Syntax:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Vysvětlení:
- Vyhledá prvek na webové stránce podle cesty xpath a zkontroluje, zda je prvek povolen.
# 5) findElement (podle, podle) s sendKeys ()
findElement (By, by) s sendKeys () zadejte do polí formuláře.
Kontroly ověřování formulářů zadáním různých uživatelských vstupů, které jsou často vyžadovány při testování automatizace. K vyhledání polí používáme findElement (By, by) a sendKeys () k zadání nějakého obsahu do upravitelného pole.
Níže uvedený příkaz používá vyhledávač názvů k vyhledání pole formuláře a do něj zadá „Aaron“.
Syntax:
driver.findElement(By.name('name')).sendkeys('Aaron');
Vysvětlení:
- Vyhledejte požadované pole názvu ve formuláři.
- Zadejte do něj hodnotu „Aaron“.
# 6) findElement (podle, podle) s getText ()
findElement (By, by) s getText () k uložení hodnoty cíleného webového prvku.
GetText () je metoda, která vám poskytne vnitřní text webového prvku. Získat text je text uvnitř značek HTML.
Níže uvedený kód najde prvek s tagem „select“ a dostane text uvnitř značky a uloží jej do rozevíracího seznamu proměnných. Nyní lze String dropDown použít pro další akce uvnitř programu.
Syntax:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Vysvětlení:
- Vyhledejte povinné pole ve formuláři, který má tagName „dropdown1“.
- Vezměte text do jeho značky HTML.
- Uložte text do řetězcového objektu „DropDown“.
# 7) Odeslat ()
Odeslat () pro odeslání webového formuláře.
Metodu click (), kterou jsme diskutovali výše, lze použít ke kliknutí na jakékoli odkazy nebo tlačítka. Submit () je lepší alternativou k click (), pokud je kliknutým prvkem tlačítko Odeslat. Tlačítko Odeslat je uvnitř značky HTML „Formulář“ a typ tlačítka je „Odeslat“ (nikoli „Tlačítko“).
Funkce Submit () usnadňuje život automatickým vyhledáním tlačítka a metody, kterou lze připojit k jakémukoli jinému poli, jako je jméno nebo e-mailová adresa. V případě kliknutí musíme použít metodu findElement (By, by) a určit správné lokátory.
V některých scénářích, kdy se akce provádí pomocí jiných prvků než tlačítka, funkce Submit () funguje a kliknutí () nebude.
Syntax:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Vysvětlení:
- Najděte prvek v dané cestě x s názvem ‘komentáře’.
- Odešlete formulář.
# 8) findElements (podle, podle)
findElements (By, by) pro získání seznamu webových prvků.
Někdy můžeme chtít vytisknout nebo provést akci na seznamu webových prvků, jako jsou odkazy nebo vstupní pole na webové stránce. V takovém případě použijeme findElements (By, by).
Syntax:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Vysvětlení:
- Seznam všech webových prvků se zadanou xpath je uložen v seznamu webových prvků allChoices.
# 9) findElements (podle, podle) s velikostí ()
findElements (By, by) s size () pro ověření, zda je prvek přítomen.
findElements (By, by) lze použít k ověření, zda je prvek na webové stránce skutečně přítomen.
Následující příkaz se používá, pokud chceme ověřit, zda je na webové stránce přítomen prvek s konkrétním vyhledávačem. Pokud size ()! = 0, pak je prvek přítomen.
Syntax:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
Vysvětlení:
- Vyhledávací prvek je zadán v xpath s ID „checkbox2“.
- Podle velikosti seznamu prvků bude boolean checkIfElementPresent nastaven na TRUE nebo FALSE.
# 10) pageLoadTimeout (čas, jednotka)
pageLoadTimeout (čas, jednotka) pro nastavení času načtení stránky.
Někdy kvůli problémům se serverem nebo zpožděním v síti může načítání stránky trvat déle než obvykle. To by mohlo vyvolat chybu v programu. Abychom tomu zabránili, nastavili jsme čekací dobu a pageLoadTimeout () je jednou z takových metod. Obvykle následuje příkaz get ().
Syntax:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Vysvětlení:
- Počkejte 500 sekund, než se stránka načte.
# 11) implicitněWait ()
implicitlyWait () pro nastavení doby čekání před prohledáním a vyhledáním webového prvku.
Co se stane, když se Webdriver pokusí najít prvek před načtením webové stránky a zobrazením prvku? NoSuchElementExeption bude vyvolána. Abychom tomu zabránili, můžeme přidat příkaz, který implicitně počká určitou dobu před vyhledáním prvku.
Syntax:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Vysvětlení:
- Implicitně počkejte 1 000 sekund před provedením dalšího řádku v kódu.
# 12) untill () a visibilityOfElementLocated ()
untill () z WebdriverWait a visibilityOfElementLocated () z ExpectedConditions čekat explicitně, dokud nebude prvek viditelný na webové stránce.
Zpracování případů, kdy elementu trvá příliš dlouho, než je viditelný na webové stránce softwaru, se použití implicitního čekání stává obtížným. V tomto případě můžeme napsat komentář a počkat, až se prvek objeví na webové stránce. Tento příkaz používá kombinaci metody until () z WebdriverWait Class a metody visibilityOfElementLocated () ze třídy ExpectedConditions.
Syntax:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
Vysvětlení:
- První řádek říká, kolik času čekat je 10 sekund.
- Druhá podmínka říká očekávanou podmínku, na kterou se čeká. Zde se jedná o prvek s id’name ve zmíněné xpath.
# 13) untill () a alertIsPresent ()
untill () z WebdriverWait a alertIsPresent () z ExpectedConditions čekat explicitně, dokud se nezobrazí výstraha.
V některých scénářích musíme počkat, až výstrahy pokračují v testu. V tomto případě použijeme příkaz pomocí metody until () ze třídy WebdriverWait a metody alertIsPresent () ze třídy ExpectedConditions.
Přečtěte si prosím následující příkaz:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Vysvětlení:
- První řádek říká, kolik času čekat - to je 10 sekund.
- Druhá podmínka říká očekávanou podmínku, na kterou se čeká. Zde je vyskakovací okno s upozorněním.
# 14) getTitle ()
getTitle () pro získání názvu stránky ve webovém ovladači selenu.
Syntax:
String title = driver.getTitle(); System.out.println(title);
To se obvykle používá k tisku titulu ve výstupních protokolech.
Vysvětlení:
- Získejte název webové stránky a uložte jej do názvu objektu String.
- Vytiskněte hodnotu uloženou v nadpisu do výstupních protokolů.
# 15) Vyberte
Vyberte třídu pro výběr a zrušení výběru hodnot z rozevíracího seznamu v Selenium WebDriver.
Často máme scénáře související s rozevíracím seznamem. K tomu se používají metody ze třídy Select. Podle scénáře můžeme použít selectByVisibleText (), selectByValue () nebo selectByIndex ().
Syntax:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Vysvětlení:
- Najít Rozevírací seznam je označen jako „vybrat“.
- V rozbalovací nabídce vyberte viditelný text „Apple“.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Vysvětlení:
- Najděte rozevírací nabídku pomocí ID „select“.
- Z rozbalovací nabídky vyberte text s hodnotou „Apple“.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Vysvětlení:
- Najděte rozevírací nabídku pomocí ID „select“.
- Z rozbalovací nabídky vyberte rozevírací položku s hodnotou indexu „1“ (druhá položka).
Podobně jako výběr můžeme pomocí podobných příkazů zrušit výběr hodnot z rozevíracího seznamu.
Zkontrolujte prosím příkazy:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Vysvětlení:
- Najděte rozevírací nabídku pomocí ID „select“.
- Z rozbalovací nabídky zrušte výběr viditelného textu „Apple“.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Vysvětlení:
- Najděte rozevírací nabídku pomocí ID „select“.
- Z rozbalovací nabídky zrušte výběr textu s hodnotou „Apple“.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Vysvětlení:
- Najděte rozevírací nabídku pomocí ID „select“.
- Z rozbalovací nabídky zrušte výběr rozevírací položky s hodnotou indexu „1“ (druhá položka).
navigate () pro navigaci mezi URL.
Často se setkáváme se scénáři, kdy bychom mohli chtít navigovat z cílové adresy URL a pak se vrátit nebo vpřed. V takových případech můžeme místo použití get () použít navigate (). V Navigate můžeme použít metody back () a forward () bez zadání URL.
Syntax:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Vysvětlení:
- Přejděte na https://www.softwaretestinghelp.com
- Přejít zpět.
- Přejděte vpřed.
# 17) getSc ScreenshotAs ()
getSc ScreenshotAs () k zachycení celé obrazovky stránky v Selenium WebDriver.
Ten je často vyžadován k uložení podrobností o práci nebo někdy k ruční kontrole výstupů. Níže uvedený příkaz se používá k pořízení snímku obrazovky a uložení do výstupního souboru.
Syntax:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Vysvětlení:
- Pořiďte snímek obrazovky a uložte soubor do objektu.
- Uložte soubor na jednotku D jako shot1.png.
# 18) moveToElement ()
moveToElement () z třídy Akce k simulaci efektu přechodu myší.
Existují scénáře, kdy je třeba umístit kurzor na webové prvky, například přes nabídku, abychom viděli podnabídku, odkazy, abychom viděli změny barev atd. V těchto případech používáme třídu Akce. Podívejte se na níže uvedenou syntaxi pro třídu Action.
Syntax:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Vysvětlení
- Najděte a najděte webový prvek pomocí div id ‚mainmenu1 '.
- Přesuňte ukazatel myši na prvek.
# 19) dragAndDrop ()
dragAndDrop () z třídy Akce přetáhněte prvek a umístěte jej na jiný prvek.
V některých scénářích můžeme chtít přetáhnout prvky. Například, přetáhněte obrázek na scénu. V tomto případě můžeme použít třídu Akce.
V metodě dragAndDrop předáme dva parametry: Zdrojový lokátor - prvek, který chceme přetáhnout, a Destinační lokátor - prvek, ke kterému chceme přetáhnout.
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();
Vysvětlení:
- Najděte a vyhledejte zdrojový webový prvek.
- Najděte a vyhledejte cílový webový prvek.
- Přetáhněte zdrojový prvek na cílový prvek.
# 20) switchTo () a přijmout (), odmítnout () a sendKeys ()
metody switchTo () a accept (), propustit () a sendKeys () ze třídy Alert přepnout na vyskakovací upozornění a zpracovat je.
Chcete-li přepnout na výstrahy, vyskakovací okna a zpracovat je, použijeme kombinaci těchto přepnout na() a přijmout (), odmítnout () metody z třídy Alert.
Syntax:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Vysvětlení:
- Přepněte do výstražného okna.
- Do výstrahy napište „This Is Softwaretestinghelp“.
- Přijměte upozornění a zavřete jej.
alert.dismiss () lze použít k zrušení výstrahy.
# 21) getWindowHandle () a getWindowHandles ()
getWindowHandle () a getWindowHandles () pro zpracování více oken v selenu WebDriver.
bezplatný vývojový diagram pro Mac
Existuje mnoho případů, kdy mají webové aplikace mnoho rámců nebo oken.
Jedná se většinou o reklamy nebo vyskakovací okna s informacemi. Můžeme zpracovat více oken pomocí Windows Handlers. Webdriver ukládá pro každé okno jedinečné ID okna. Toto ID využíváme k jejich zpracování.
Syntax:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Výše uvedené příkazy se používají k získání ID okna aktuálního okna a všech oken. Podívejte se na smyčku níže, abyste zjistili, jak můžeme přejít do každého okna přes smyčku for.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Vysvětlení:
- Pro každé ID popisovače okna z driver.getWindowHandles () přepněte na toto ID okna.
# 22) getConnection ()
getConnection () z DriverManageru pro spuštění připojení k databázi.
Aby bylo možné zahájit připojení k databázi, používáme getConnection ze třídy DriverManager.
Syntax:
DriverManager.getConnection(URL, 'username', 'password' )
Vysvětlení:
- Připojte se k databázi pomocí adresy URL a přihlašovacích údajů.
# 23) POTOM
POI ke čtení ze souborů aplikace Excel.
Při testování založeném na datech často ukládáme vstupy do souboru aplikace Excel a čteme je. Abychom to mohli udělat ve WebDriveru, importujeme balíček POI a poté použijeme níže uvedený příkaz.
Syntax:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Vysvětlení:
- Vytvořte soubor čtečky.
- Přečtěte si soubor.
# 24) assertEquals (), assertNotEquals (), assertTrue () a assertFalse ()
Asserts using assertEquals (), assertNotEquals (), assertTrue () and assertFalse () to compare the results.
Tvrzení se používají k porovnání očekávaných a skutečných výsledků. Úspěšné nebo neúspěšné absolvování testu je obvykle rozhodnuto z výsledku tvrzení. V automatizaci se používají různé typy tvrzení.
Syntax:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Vysvětlení:
- V prvním příkazu, kdykoli jsou očekávané a skutečné hodnoty stejné, prochází tvrzení bez výjimky. tj. pokud je zpráva „Tento text“, pak tvrzení projde.
- V druhém příkazu, kdykoli jsou očekávané a skutečné hodnoty stejné, tvrzení selže s výjimkou. tj. pokud je zpráva „Tento text“, tvrzení selže.
- Ve třetím příkazu, pokud podmínka projde, proběhne tvrzení. tj. pokud je výsledek<0, then the assertion passes.
- Ve čtvrtém příkazu, pokud podmínka projde, tvrzení selže. tj. pokud je výsledek<0, then the assertion fails.
# 25) zavřít () a ukončit ()
close () a quit () zavřete okna a instance ovladačů.
Tyto příkazy se používají na konci každého automatizačního programu.
Syntax:
driver.close() driver.quit()
Vysvětlení:
První příkaz zavře aktuální okno.
Druhý příkaz ukončí tuto instanci ovladače a zavře každé přidružené okno, které se otevře.
Závěr
V tomto kurzu jsme představili různé běžně a nadměrně používané příkazy WebDriveru. Pokusili jsme se vysvětlit příkazy pomocí vhodných příkladů a fragmentů kódu.
Snažil jsem se ze všech sil vysvětlit nejoblíbenější příkazy WebDriver, které běžně používáme v každodenní práci. Tyto příkazy vám umožní snadno pracovat se selenem.
Doufám, že to pro vás bylo zajímavé a dobře informované.
Jste automatizační tester, který vyzkoušel některý z výše uvedených příkazů? Nebo jsme vynechali nějaké příkazy, které používáte ve výše uvedeném seznamu?
Další výuka č. 18 : V nadcházejícím tutoriálu bychom diskutovali o Webové tabulky, rámy a dynamické prvky které jsou podstatnou součástí každého webového projektu. Pokryjeme také zpracování výjimek důležité téma podrobněji v jednom z nadcházejících výukových programů selenu.
Doporučené čtení
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Úvod do Selenium WebDriver - Selenium Tutorial # 8
- Jak spustit selen WebDriver v různých populárních prohlížečích
- Implementace našeho prvního skriptu WebDriver - výuka selenu WebDriver # 10
- Selenium FAQ
- Jak zacházet s výstrahami / vyskakovacími okny v Selenium WebDriver - Selenium Tutorial # 16
- Výukový program GeckoDriver Selenium: Jak používat GeckoDriver v selenových projektech
- Implicitní a explicitní čekání v selenu WebDriver (typy čekání selenu)