V tomto segmentu tutoriálu budeme podrobně diskutovat o javascriptexecutor v selenu a všechny pravděpodobné operace lze provést pomocí javascriptexecutor v selenu, pokud jde o WebAutomation.
Co je javascriptexecutor v selenu
V knihovně Selenium javascriptexecutor je rozhraní, které se implementuje do několika tříd, jako je ChromeDriver, FirefoxDriver, RemoteWebDriver, EdgeDriver, EventFiringWebDriver, InternetExplorerDriver atd., Které podporují různé operace související s Javascriptem vůči příslušným ovladačům prohlížeče.
Typy Java Script v selenu a jeho metody:
K dispozici jsou dva různé druhy metod JavaScriptu:
Rozdíl mezi executeAsyncScript a executeScript:
vykonatAsyncScript : Tento typ prováděcího programu skriptu Java se používá k provedení asynchronního kódu JavaScript v kontextu aktuálně vybraného rámce nebo okna.
executeScript: Tento typ Java scriptexecutoru, který v podstatě provádí synchronní kód JavaScript v kontextu aktuálně vybraného rámce nebo okna.
Operace, kterou lze provést pomocí javascriptového exekutora v selenu:
Existuje mnoho zásadních webových operací, kterých je dosaženo spuštěním Javascript v ovladači prohlížeče k dosažení určité operace, například:
Pojďme diskutovat o všech výše zmíněných operacích:
Kliknutí na selenový javascript
Můžeme provést operaci kliknutí v selenu pomocí operace Javascript v níže uvedeném přístupu:
public void jsClick() { WebElement element = driver.findElement(By.xpath("Xpath_OF_Element")); JavascriptExecutor jscriptExecutor = (JavascriptExecutor) ovladač; jscriptExecutor.executeScript("argumenty[0].click();", prvek); }
Selen Javascript zadejte text
Můžeme provést operaci sendkeys v selenu pomocí operace Javascript v níže uvedeném přístupu:
public void jsSendKeys() { JavascriptExecutor jscriptExecutor = (JavascriptExecutor) ovladač; jscriptExecutor.executeScript("document.getElementById('id_of_the_element').value='ENTER_THE_TEXT_HERE';"); }
Zaškrtávací políčko selenový javascript
Mohli bychom použít volbu kontrolovány= true nebo false v závislosti na případech použití k provedení operací CheckBox s Javascriptem v selenu.
public void jsCheckBoxOps() { JavascriptExecutor jscriptExecutor = (JavascriptExecutor) ovladač; jscriptExecutor.executeScript("document.getElementById('id_of_the_element').checked=false;"); }
Selenium javascript Generování výstrah
K vygenerování výstrahy musíme použít „alert ('ALERT_TEXT_TO_BE_SHOWN');„Při provádění operace pomocí Javascript.
public void jsAlertGeneration() { JavascriptExecutor jscriptExecutor= ovladač (JavascriptExecutor); jscriptExecutor.executeScript("alert('ALERT_TEXT_TO_BE_SHOWN');"); }
Obnovovací stránka selenového javascript
K obnovení webové stránky v selenu pomocí Javascriptového exekutora můžeme použít history.go (0).
public void jsRefreshPage() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) ovladač; jscriptExecutor.executeScript("history.go(0)"); }
Selenový javascript pro získání vnitřního textu Webové stránky
K načtení celého vnitřního textu můžeme použít document.documentElement.innerText;
public String jsFetchInnerText() { JavascriptExecutor jscriptExecutor= ovladač (JavascriptExecutor); return String.valueOf(jscriptExecutor.executeScript("return document.documentElement.innerText;")); }
Selenový javascript získá název stránky
K vrácení názvu stránky můžeme použít název dokumentu; spolu s Javascript Exekutorem v selenu.
public String jsWebPageTitle() { JavascriptExecutor jscriptExecutor= ovladač (JavascriptExecutor); return String.valueOf(jscriptExecutor.executeScript("return document.title;")); }
Selenový javascript k získání domény
K vytažení názvu domény můžeme použít dokument.doména;
public String jsFetchDomain() { JavascriptExecutor jscriptExecutor= ovladač (JavascriptExecutor); return String.valueOf(jscriptExecutor.executeScript("return document.domain;")); }
Selenový javascript k získání adresy URL webové stránky
K načtení adresy URL pomocí programu JavaScript Executor se selenem bychom mohli použít dokument.URL;
public String jsFetchURL() { JavascriptExecutor jscriptExecutor= ovladač (JavascriptExecutor); return String.valueOf(jscriptExecutor.executeScript("return document.URL;")); }
Selenový javascript Rolování webové stránky
Můžeme provádět posouvání několika způsoby pomocí Javascript, dva z přístupů jsou uvedeny níže ve fragmentu kódu, například:
public void scrollIntoView(By locator) { try { JavascriptExecutor executor = (JavascriptExecutor) driver; Element WebElement = driver.findElement(locator); executor.executeScript("arguments[0].scrollIntoView(true);", prvek); BASE_LOGGER .info("pro lokátor byla provedena operace scrollIntoView: " + 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í scrollIntoView na prvku: " + lokátor); } }
Můžeme také určit hodnotu posouvání (množství posouvání), jako je tento přístup níže:
public void jsScroll() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) ovladač; jscriptExecutor.executeScript("window.scrollBy(0,1000)"); }
Selenový javascript pro přechod na jinou stránku
Můžeme přejít na jinou webovou stránku / obrazovku přímým poskytnutím umístění adresy URL v rámci javascriptexecutor v selenu.
public void pageNavigationWithJS() { JavascriptExecutor jscriptExecutor= ovladač (JavascriptExecutor); jscriptExecutor.executeScript("window.location = 'PageURL_To_Navigate'"); }
Selenový javascript Chcete-li najít skrytý prvek a kliknout na něj
Mohli bychom přímo kliknout na skrytý prvek pomocí Javascript z backendu, i když prvek není viditelný, zde je fragment kódu pro stejný:
public void clickOnHiddenElement() { JavascriptExecutor jscriptExecutor= ovladač (JavascriptExecutor); WebElement hiddenElement=driver.findElement(By.id("ID_OF_ELEMENT")); jscriptExecutor.executeScript("argumenty[0].click();", hiddenElement); }
Závěr:
Dosud jsme diskutovali o Javascriptu a různých operacích, které je třeba provést pomocí Javascriptového exekutora v Selenium, doporučujeme vám projít si celý výukový program selenu získat lepší přilnavost ke všem jeho různým aspektům. V připravované sérii Segmenty výuky si povíme více o Automatizace selenu Framework a další nejnovější technologie pro práci se selenem a pro prolomte jakýkoli pokročilý rozhovor v selenu, který můžete projít zde.