Az oktatóanyag ebben a szegmensében részletesen tárgyaljuk a javascriptexecutort szelénben, és az összes valószínű művelet végrehajtható a szelénben lévő javascriptexecutor használatával a WebAutomation szempontjából.
Mi a javascriptexecutor a szelénben
A Selenium Library-ben a javascriptexecutor egy olyan interfész, amelyet számos osztály, például ChromeDriver, FirefoxDriver, RemoteWebDriver, EdgeDriver, EventFiringWebDriver, InternetExplorerDriver stb. implementál, hogy támogassa a különböző Javascript-hez kapcsolódó műveleteket a megfelelő böngésző-illesztőprogramok felé.

A Java Script típusai a szelénben és módszerei:
Kétféle JavaScript metódus áll rendelkezésre:
Az executeAsyncScript és az executeScript közötti különbség:
futtassa az AsyncScriptet : Ez a típusú java szkript végrehajtó egy aszinkron JavaScript kód végrehajtására szolgál az aktuálisan kiválasztott keret vagy ablak kontextusában.
executeScript: Ez a típusú Java script végrehajtó, amely alapvetően szinkron JavaScript kódot hajt végre az aktuálisan kiválasztott keret vagy ablak kontextusában.
Művelet, amelyet a szelénben lévő javascript végrehajtóval lehet végrehajtani:
Különféle kulcsfontosságú webes műveletek érhetők el a Javascript futtatásával a böngésző-illesztőprogramban bizonyos műveletek elérése érdekében, például:
Beszéljük meg az összes fent említett műveletet:
Szelén javascript kattintás
Kattintási műveletet hajthatunk végre a Seleniumban Javascript művelettel az alábbi megközelítésben:
public void jsClick() { WebElement elem = driver.findElement(By.xpath("Xpath_OF_Element")); JavascriptExecutor jscriptExecutor = (JavascriptExecutor) illesztőprogram; jscriptExecutor.executeScript("argumentumok[0].click();", elem); }
Szelén javascript írjon be szöveget
A Seleniumban a sendkeys műveletet Javascript művelettel hajthatjuk végre az alábbi megközelítésben:
public void jsSendKeys() { JavascriptExecutor jscriptExecutor = (JavascriptExecutor) illesztőprogram; jscriptExecutor.executeScript("document.getElementById('id_of_the_element').value='ENTER_THE_TEXT_HERE';"); }
Szelén javascript jelölőnégyzet
Használhatnánk az opciót ellenőrzött=igaz vagy hamis, attól függően, hogy a CheckBox-műveleteket milyen Javascript-szel kell végrehajtani a Seleniumban.
public void jsCheckBoxOps() { JavascriptExecutor jscriptExecutor = (JavascriptExecutor) illesztőprogram; jscriptExecutor.executeScript("document.getElementById('id_of_the_element').checked=false;"); }
Szelén javascript riasztás generálása
A riasztás generálásához a „alert('ALERT_TEXT_TO_BE_SHOWN');” a művelet végrehajtása közben a Javascript segítségével.
public void jsAlertGeneration() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) illesztőprogram; jscriptExecutor.executeScript("alert('ALERT_TEXT_TO_BE_SHOWN');"); }
Szelén javascript frissítő oldal
Egy weboldal frissítéséhez a Seleniumban a Javascript Executor segítségével használhatjuk history.go(0).
public void jsRefreshPage() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) illesztőprogram; jscriptExecutor.executeScript("history.go(0)"); }
Szelén javascript a weboldal belső szövegének lekéréséhez
A teljes belső szöveg lekéréséhez használhatjuk document.documentElement.innerText;
public String jsFetchInnerText() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) illesztőprogram; return String.valueOf(jscriptExecutor.executeScript("return document.documentElement.innerText;")); }
Szelén javascript kapja meg az oldal címét
Egy oldal címének visszaadásához használhatjuk dokumentum címe; a Javascript Executorral együtt a Seleniumban.
public String jsWebPageTitle() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) illesztőprogram; return String.valueOf(jscriptExecutor.executeScript("return document.title;")); }
Szelén javascript a domain beszerzéséhez
A domain név lehúzásához használhatjuk document.domain;
public String jsFetchDomain() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) illesztőprogram; return String.valueOf(jscriptExecutor.executeScript("return document.domain;")); }
Szelén javascript egy weboldal URL-címének lekéréséhez
Az URL lekéréséhez a JavaScript Executor és a Selenium segítségével használhatjuk dokumentum.URL;
public String jsFetchURL() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) illesztőprogram; return String.valueOf(jscriptExecutor.executeScript("return document.URL;")); }
Szelén javascript Weboldal görgetése
A görgetést többféleképpen hajthatjuk végre a Javascript használatával, két megközelítés látható alább a kódrészletben, például:
public void scrollIntoView(By locator) { try { JavascriptExecutor executor = (JavascriptExecutor) illesztőprogram; WebElement elem = driver.findElement(locator); executor.executeScript("argumentumok[0].scrollIntoView(true);", elem); BASE_LOGGER .info("scrollIntoView művelet végrehajtásra került a lokátorhoz : " + String.valueOf(elem)); } catch (e kivétel) { String kivételData = e.getCause().getMessage(); BASE_LOGGER.error("Hiba történt pl.: " + kivételData + " a scrollIntoView végrehajtásakor a következő elemen: " + locator); } }
A görgetési értéket (a görgetés mennyiségét) is megadhatjuk az alábbi megközelítés szerint:
public void jsScroll() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) illesztőprogram; jscriptExecutor.executeScript("window.scrollBy(0,1000)"); }
Szelén javascript, hogy egy másik oldalra navigáljon
Egy másik weboldalra/képernyőre navigálhatunk, ha közvetlenül megadjuk az URL-címet a Selenium javascript-végrehajtójában.
public void pageNavigationWithJS() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) illesztőprogram; jscriptExecutor.executeScript("window.location = 'PageURL_To_Navigate'"); }
Szelén javascript Rejtett elem megkeresése és rákattintása
A rejtett elemre közvetlenül rákattinthatunk a Javascript segítségével a háttérből, még akkor is, ha az elem nem látható, itt van a kódrészlet ehhez:
public void clickOnHiddenElement() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) illesztőprogram; WebElement hiddenElement=illesztőprogram.findElement(By.id("ELEM_azonosítója")); jscriptExecutor.executeScript("arguments[0].click();", hiddenElement); }
Következtetés:
Eddig megbeszéltük a Javascriptet és a Selenium Javascript végrehajtójával végrehajtandó különféle műveleteket, érdemes végignézni a teljes Selenium bemutató hogy jobban átláthassuk ugyanannak az összes különböző aspektusát. A következő Segments of Tutorial sorozatban többet fogunk megvitatni a Szelén automatizálás Keretrendszer és egyéb legújabb technológiák a Seleniummal való együttműködéshez, és minden haladó szelén interjút, amelyet itt át tudsz menni.