Důležité příkazy webdriveru selenu z roku 2021

V této sérii tutoriálu se dozvíme o všech vyčerpávajících příkazech selenového webdriveru, počínaje velmi základními selenovými příkazy až po pokročilé příkazy selenového webdriveru v níže uvedeném pořadí článků: 

Základní příkazy selenového webdriveru - otázky: 

Meziprodukt Selen webový ovladač Příkazy -Otázky:

Advance Selenium WebDriver Příkazy -Otázky:

Základní příkazy selenu - odpovědi: 

příkazy webového ovladače selenu
Příkazy webového ovladače selenu

Selen přejděte na adresu URL:

Pokud chceme v selenovém webovém ovladači procházet nebo otevírat jakoukoli konkrétní adresu URL prostřednictvím našeho prohlížeče, můžeme to udělat hlavně dvěma různými přístupy, jeden je s metodou get () a druhý s navigací, podíváme se, jak by to mohlo být Hotovo : 

public void getUrl(String url) { try { driver.get(url); BASE_LOGGER.info("Úspěšně navigováno na URL jako: " + url); } catch (Exception ex) { String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Nelze přejít na URL : " + url + " s chybou jako: " + exceptionData); } }

Kód, který můžete pro navigaci zadat, je driver.get („http://example.com“), zatímco ovladač je instance Webdriver rozhraní Selenium WebDriver.

zde naleznete informace o tom, jak spustit všechny prohlížeče v selenu.

Jak interně funguje metoda get v selenu: 

Jakmile je tato metoda get () volána z testovacího skriptu, pak odkaz na Webdriver, tj. Ovladač počká, dokud se stránka nenačte, ve skutečnosti metoda get () interně spouští funkce onload který po úplném načtení stránky vrátí popisovač k vašemu odkazu na ovladač.

Selen navigace vpřed a navigace zpět:

Dalším přístupem k navigaci na adresu URL s historií prohlížeče je použití metody navigate (), kdy Selenium používá historii prohlížeče k navigaci vpřed nebo k navigaci zpět s vámi příslušnými adresami URL, například: 

Selen se pohybuje vpřed

public void navigateForward() { try { driver.navigate().forward(); BASE_LOGGER.info("Úspěšně navigováno vpřed" ); } catch (Exception ex) { String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Nelze navigovat s chybou jako: " + exceptionData); } }

Selen navigovat Zpět: 

public void navigateBack() { try { driver.navigate().back(); BASE_LOGGER.info("Úspěšně navigováno zpět na URL "); } catch (Exception ex) { String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Nelze přejít zpět na URL: s chybou jako: " + exceptionData); } } 

Obnovovací stránka selenu

Můžeme použít metodu refresh () z navigace Selenium 

public void seleniumRefreshPage() { try { driver.navigate().refresh(); BASE_LOGGER.info("Úspěšně dokončena stránka aktualizace Selenium "); } catch (Exception ex) { String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Nelze provést aktualizaci stránky Selenium: s chybou jako: " + exceptionData); } }

Kliknutí na selen

Abychom mohli provést jakoukoli operaci kliknutí se selenovým kliknutím, musíme v níže uvedeném přístupu použít metodu nazvanou click (), existují další způsoby, jak provést operaci kliknutí na kterémkoli z WebElement v selenu, tj. Pomocí JavaScriptu, což je někdy velmi užitečné v závislosti na situacích kde vaše normální metoda kliknutí selenem pracuje velmi stabilním způsobem, existují případy, kdy pokud automatizujete s prohlížečem IE a pokud je testovaná webová aplikace vytvořena v nějakém bootstrapu JS, normální metoda kliknutí selenem nemusí někdy fungovat , v takovém případě můžete použít metodu kliknutí Javascript.

public void safeClick(Podle prvku) { try { driver.findElement(element).click(); BASE_LOGGER.info("Pro lokátor byla provedena operace Safeclick: " + String.valueOf(element)); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Došlo k chybě, tj. : " + exceptionData + " při provádění Safeclick na prvku: " + prvek); } }

Prvek můžete předat pomocí různých strategií lokátoru (tj. Xpath, name, css atd.) V metodě zvané findElement () a poté provést operaci metody click () jako výše.

Selenové vysílače

Když potřebujeme zadat nějaký text do nějakého textového pole pomocí Selenium, použijeme metodu Selenium sendkeys () tak, že předáme „Text, který se má zadat“ jako parametr v metodě sendKeys („Text, který se má zadat“) a podobně jako metoda click () tato metoda je také použita na jakýkoli webElement (zde webové textové pole), takže k odeslání Textu do tohoto TextBoxu musíme použít driver.findElement.

Ukázkový kód vypadá takto: 

public void enterTextIntoElement(By element, String textToBeEntered) { try { driver.findElement(element).sendKeys(textToBeEntered); BASE_LOGGER.info( "pro lokátor byla provedena operace enterTextIntoElement: " + String.valueOf(element)); } catch (Exception ex) { String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("operace enterTextIntoElement selhala pro lokátor : " + String.valueOf(element) + " s výjimkou např.: " + exceptionData); } }

Selenové čisté textové pole

Pokud chceme vymazat jakákoli data z dříve vyplněného textového pole, můžeme použít metodu nazvanou clear () a také pomocí třídy klíčů v selenu to můžeme udělat, pomocí kterého můžeme převzít operace klávesnice přímo spolu s klávesovými zkratkami :

Chcete-li vymazat Data pomocí metody clear (), můžeme napsat níže uvedený přístup: 

public void clearField(Podle prvku) { try { driver.findElement(element).clear(); BASE_LOGGER.info("Pro lokátor byla provedena operace ClearField: " + String.valueOf(element)); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Operace ClearField selhala pro lokátor : " + String.valueOf(element) + " s výjimkou např.: " + exceptionData); } }

Pomocí třídy Keys můžeme také vymazat textová pole v následujícím přístupu.

Maximalizovat okno selenu

Pokud při práci s automatizací prohlížeče musíme maximalizovat okno v selenu, mohli bychom použít následující přístupy: 

Selenium Maximize Window pomocí metody Maximize ():  

public void maximalizeWindow() { try { driver.manage().window().maximize(); BASE_LOGGER.info("Okno bylo úspěšně maximalizováno"); } catch (Výjimka e) { BASE_LOGGER.info("Došlo k výjimce při maximalizaci okna jako: " + e.getCause().getMessage()); } }

Selenium Maximize Window pomocí ChromeOptions pro ChromeBrowser:

Pomocí níže uvedené metody nastavujeme instanci prohlížeče Chrome pro Webdriver v maximalizovaném režimu a vrácená relace ovladače bude pokračovat ve stejné funkci (tj. Maximalizovat okno) pro další webovou operaci podle skriptu.

public WebDriver openBrowserInMaximizeWindow(){ try { ChromeOptions options = new ChromeOptions(); options.addArguments("start-maximized"); Ovladač WebDriver = nový ChromeDriver (možnosti); }catch(Výjimka e){ BASE_LOGGER.error("Vyskytla se výjimka s : " + e.getCause().getMessage()); } vrátit ovladač; }

Minimalizovat okno selenu

Okno můžeme minimalizovat pomocí příkazu Selenium minimalizovat () s následujícím přístupem:  

public void minimalizovatWindow() { try { driver.manage().window().minimize(); BASE_LOGGER.info("Okno bylo úspěšně minimalizováno"); } catch (Výjimka e) { BASE_LOGGER.info("Vyskytla se výjimka při minimalizaci okna jako: " + e.getCause().getMessage()); } }

Selen zavřít prohlížeč:

K zavření prohlížeče v selenu používáme metodu close () v níže uvedeném přístupu: 

public void closeCurrentWindow() { try { if (null != driver) { driver.close(); BASE_LOGGER.info("Aktuální okno/prohlížeč úspěšně uzavřen"); } else { BASE_LOGGER.info("Nelze zavřít aktuální instanci okna/prohlížeče jako jeho NULL"); } } catch (Výjimka e) { BASE_LOGGER.info("Při zavírání aktuálního okna/prohlížeče došlo k výjimce"); } }

Selen ukončete prohlížeč

K ukončení všech instancí prohlížeče v selenu používáme metodu quit () v níže uvedeném přístupu: 

public void quitBrowser() { try { if (null != driver) { driver.quit(); BASE_LOGGER.info("Úspěšně UKONČIT prohlížeč"); } else { BASE_LOGGER.info("Nelze UKONČIT prohlížeč, protože je NULL"); } } catch (Výjimka e) { BASE_LOGGER.error("Při UKONČENÍ PROHLÍŽEČE došlo k výjimce"); } }

Rozdíl mezi driver.close () a driver.quit () v selenu:

Mezilehlé příkazy selenového webdriveru - Odpovědi:

Rozpad v selenu:

Ve struktuře DOM webové stránky je rozevírací seznam implementován výběrem nebo zadáním Tage HTML. Práce s rozevíracím seznamem se selenem a provádění určitých 

webové operace v rozbalovacích nabídkách, musíme použít třídu „Select“ z API Selenium WebDrivers jako součást „org.openqa.selenium.support.ui”Balíček od Selenium WebDriver. 

Při práci s výběrem DropDown v selenu existují dvě různá prohlášení o problému nebo se na ně zeptejte: 

Výběr jednoho prvku v rozevírací nabídce najednou

V níže uvedeném přístupu můžeme pracovat s Dropdown:  

Krok první :

Musíte vytvořit popisovač pro DropDown WebElement pomocí Vyberte třídu Vytvoření objektu následujícím způsobem:

Select select = nový Select (WebElement webelement);

Krok dva : 

K výběru hodnoty z rozevíracího seznamu v selenu existují 3 různé přístupy, k výběru hodnoty z rozevíracího seznamu v selenu můžeme použít kteroukoli z níže uvedených metod: 

Tady je níže uvedený přístup, který můžeme použít k výběru hodnoty z rozevíracího seznamu: 

Dropdown in selenium- Approach One: 
V aplikaci Approach One můžete použít text, který je viditelný požadovaného výběru Webelementu.

public void selectFromDropDownByText(Podle lokátoru, Řetězec viditelnýText) { try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByVisibleText(visibleText); BASE_LOGGER.info("Operace SelectFromDropDownByText byla provedena pro lokátor: " + String.valueOf(locator)); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Došlo k chybě tj. : " + exceptionData + " při provádění selectFromDropDownByText na prvku : " + locator); } }

Ve výše uvedené metodě můžete předat lokátor rozevíracího seznamu a viditelný text, který chcete z rozevíracího seznamu vybrat, poté provede požadovanou operaci je Výběr očekávaného rozevíracího prvku. 

Dropdown in selenium- Approach Two:

V tomto přístupu vyberete Webelement pomocí atributu value požadovaného výběru WebElement z rozbalovací nabídky: 

public void selectFromDropDownByValue(Podle lokátoru, Řetězec viditelnýText) { try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByValue(“Požadovaná hodnota webového prvku “); BASE_LOGGER.info("operace selectFromDropDownByValue byla provedena pro lokátor: " + String.valueOf(locator)); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Došlo k chybě, tj.: " + exceptionData + " při provádění selectFromDropDownByValue na prvku : " + lokátor); } }

Ve výše uvedené metodě můžete předat lokátor rozevíracího seznamu a atribut hodnoty WebElement, který chcete z rozevíracího seznamu vybrat, poté provede požadovanou operaci Výběr požadovaného rozevíracího prvku. 

Dropdown in selenium- Approach Three:

V tomto přístupu vyberete Webelement pomocí indexu (pořadí WebElement ve značce HTML select) požadovaného výběru WebElement z rozevírací nabídky, index obvykle začíná od 0:

public void selectFromDropDownByIndex(Podle lokátoru, Řetězec viditelnýText) { try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByIndex(5); BASE_LOGGER.info("operace selectFromDropDownByIndex byla provedena pro lokátor: " + String.valueOf(locator)); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Došlo k chybě, tj. : " + exceptionData + " při provádění selectFromDropDownByIndex na prvku : " + locator); } }

Ve výše uvedené metodě můžete předat lokátor rozevíracího seznamu a indexu / pořadí WebElementu (ve značce výběru rozevíracího seznamu), který chcete z rozevíracího seznamu vybrat, poté provede požadovanou operaci. Výběr očekávaného prvku rozevíracího seznamu .

Výběr více prvků v rozevíracím seznamu najednou 

Záleží na struktuře HTML DOM a implementaci, zda je u některého rozevíracího prvku povoleno mít více výběr prvků. Chcete-li vybrat více prvků v selenu, musíme postupovat podle níže uvedených dvou kroků: 

Krok první : Zkontrolujte, zda DropDown WebElement umožňuje vícenásobný výběr pomocí metody isMultiple (), toto vrátí boolean jako true nebo false.

Krok dva : pokud výše uvedený krok vrátí hodnotu true, pak rozevírací seznam umožňuje vícenásobný výběr. A poté můžeme použít výše diskutovaný libovolný / všechny tři různé přístupy k výběru více hodnot a provedení jakýchkoli požadovaných operací.

Na závěr zde uvádíme ukázkový kód:

Element WebElement =driver.findElement(By.xpath("XPATH DropDown")); Select selectMultiple = new Select(element); if(selectMultiple.isMultiple()){ selectMultiple.selectByIndex(1); selectMultiple.selectByIndex(2); //Podobně bychom mohli použít jiné přístupy/metodu pro výběr rozevíracích prvků, jako je selectByVisibleText nebo selectByValue }

Přetáhněte selen :

V segmentu tutoriálu se naučíme všechny různé přístupy k provádění Drag and Drop v selenu, jako například: 

Co je drag and drop v selenu a kde se používá: 

Drag and Drop je specifická operace, když uživatelé přejdou na vaše webové aplikace a pokusí se provést operaci (tažení myší) na nějakém webovém prvku, který se může volně pohybovat po aplikaci a může být zrušen na jiném místě webové stránky této aplikace. 

Zde se prvek, který se táhne, nazývá Source WebElement a prvek, do kterého se přetahuje, se nazývá Destination WebElement. 

K provedení výše uvedených scénářů pomocí automatizace se selenem musíme přetáhnout funkce poskytované selenem.

Různé přístupy k přetažení selenu:

Přetažení selenu pomocí metody Build (): 

Jak interně funguje metoda Build () :

build () metoda z třídy Akce v selenu, která je součástí balíčku interakce org.openqa.selenium interně generuje složené akce 

kombinací všech akcí, které byly vyvolány nebo spuštěny před voláním metody build ().

Například:

new Actions(driver).clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build();

Výše uvedené prohlášení k provedení operace přetažení se používá k vytvoření vazby na předchozí akce, jako jsou metody clickAndHold, moveToElement a release.

Tady je níže uvedený fragment kódu, který umožňuje provést přetažení v selenu pomocí metody sestavení třídy Akce: 

public void dragAndDrop(Podle zdroje, Podle cíle) { try { WebElement sourceElement = driver.findElement(source); WebElement destinationElement = driver.findElement(destination); Tvůrce akcí = new Actions(driver); Akce dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build(); dragAndDrop.perform(); BASE_LOGGER.info("Akce Drag and Drop byla úspěšně provedena "); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Došlo k chybě, tj.: " + exceptionData + " při provádění DragAndDrop "); } }

Přetahujte a pusťte selen pomocí metody dragAndDrop ():

Jak interně funguje metoda dragAndDrop ():

Metoda dragAndDrop (sourceWebElement, destinationWebElement) v zásadě vyžaduje dva argumenty, jeden je zdrojový a druhý cílový webový prvek. 
dragAndDrop odstraňuje potřebu clickAndHold, moveToElement, uvolněte metody ve třídě Action, interně zpracovává všechny scénáře, které tyto metody provádějí.

Tady je následující fragment kódu pro provádění dragAndDrop metodou dragAndDrop:

public void dragAndDropOps(Podle zdroje, Podle cíle) { try { WebElement sourceElement = driver.findElement(source); WebElement destinationElement = driver.findElement(destination); Tvůrce akcí = new Actions(driver); builder.dragAndDrop(sourceElement,destinationElement).perform(); BASE_LOGGER.info("Akce Drag and Drop byla úspěšně provedena "); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Došlo k chybě, tj.: " + exceptionData + " při provádění DragAndDrop "); } }

Přetahujte a pusťte selen pomocí metody dragAndDropBy ():

Jak interně funguje metoda dragAndDropBy (zdroj WebElement, int xOffset, int yOffset):

Metoda dragAndDropBy () trvá 3 argumenty, které jsou: 

Zdrojový WebElement: prvek, který se táhne, tj. Zdrojový prvek 

xOffset: horizontální posunutí cílového umístění 

yOffset: vertikální posunutí cílového umístění 

Interně tato metoda přebírá zdrojový webový prvek a přesune jej a uvolní do cílového umístění. Tato metoda je užitečná, pokud chcete přesunout libovolný zdrojový webový prvek na libovolné místo v pixelech.

Níže je fragment kódu pro DragAndDropBy v selenu:

public void dragAndDropByOps(Podle zdroje, int xOffSet,int yOffSet) { try { WebElement sourceElement = driver.findElement(source); Tvůrce akcí = new Actions(driver); builder.dragAndDropBy(sourceElement,xOffSet,yOffSet).build().perform(); BASE_LOGGER.info("Akce Drag and Drop byla úspěšně provedena "); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Došlo k chybě, tj.: " + exceptionData + " při provádění DragAndDrop "); } }

Navštivte zde další pokročilé sady příkazů webdriveru Intermediate Selenium.

Advance Selenium WebDriver Příkazy -Odpovědi:

Poklepejte na selen :

Chcete-li replikovat operaci, tj. Poklepat na selen pomocí myši, musíme provést poklepání přes třídu Akce v selenu a můžeme to udělat v níže uvedeném přístupu: 

public void doubleClick(By locator) { try { WebElement element = driver.findElement(locator); Akce akce = nové Akce(ovladač); actions.doubleClick(element).perform(); BASE_LOGGER.info("Dvakrát klikněte na prvek: " + lokátor); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Prvek není připojen k dokumentu stránky " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Prvek " + lokátor + " nebyl nalezen v DOM " + e.getCause().getMessage()); } catch (Výjimka e) { BASE_LOGGER.error("Prvek " + lokátor + " nebylo možné kliknout " + e.getCause().getMessage()); } }

Výše uvedený fragment kódu je metoda, která v zásadě bere argument jako vyhledávač, tj. WebElement, na kterém musí být provedeno dvojité kliknutí.

Kontextový klik v selenu:

Chcete-li replikovat operaci kontextového kliknutí nebo kliknutí pravým tlačítkem myši, musíme provést metodu kontextového kliknutí pomocí třídy Akce v selenu a můžeme to udělat v níže uvedeném přístupu: 

public void kliknout vpravo(Podle lokátoru) { try { WebElement element = driver.findElement(locator); Akce akce = nové Akce(ovladač); actions.contextClick(element).perform(); BASE_LOGGER.info("Proveden kontext Klikněte na prvek: " + lokátor); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Prvek není připojen k dokumentu stránky " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Prvek " + lokátor + " nebyl nalezen v DOM " + e.getCause().getMessage()); } catch (Výjimka e) { BASE_LOGGER.error("Prvek " + lokátor + " nebylo možné kliknout " + e.getCause().getMessage()); } }

Podrobné příkazy webového ovladače Advance Selenium naleznete zde. Také abyste porozuměli tomu Třída akcí na selenu a jeho implementací navštivte zde .

Kritické časté dotazy: 

Co je manage () v selenu?

driver.manage () vrací odkaz na implementaci WebDriver.Options Interface.Options interface je rozhraní pro správu a zpracování akcí v nabídce prohlížeče, jako například: 

Pro vyčerpávající sady Rozhovor se selenem Otázky - Kritické a pokročilé sady naleznete zde.

Závěr:

V této části tutoriálu jsme probrali Základní Selénový webový ovladač příkazy. Kliknutím sem se dozvíte Středně pokročilé a pokročilé příkazy webového ovladače selenu. Chcete-li se dozvědět selen ze Scratch, klikněte sem.

Zanechat komentář