Ebben az oktatóanyag-sorozatban megismerjük az összes kimerítő szelén webdriver parancsot, kezdve az alapvető szelénparancsoktól a fejlett Selenium webdriver parancsokig, az alábbi cikkek sorrendjében:
Alapvető Selenium Webdriver parancsok - Kérdések:
Közepes szelén web meghajtó parancsok - Kérdések:
Advance Selenium WebDriver parancsok - Kérdések:
A szelén alapparancsai – Válaszok:

Szelén navigáljon az url-re:
A Selenium Webdriverben, ha egy adott URL-t szeretnénk navigálni vagy megnyitni a böngészőn keresztül, akkor ezt nagyrészt két különböző megközelítésben tehetjük meg, az egyik a get() metódus, a másik pedig a navigate segítségével, megnézzük, hogyan lehet ez Kész :
public void getUrl(String url) { try { driver.get(url); BASE_LOGGER.info("Sikeresen navigált a következő URL-hez: " + url); } catch (Exception ex) { String kivételData = ex.getCause().getMessage(); BASE_LOGGER.error("Nem lehet navigálni a következő URL-hez: " + url + " a következő hibával: " + kivételData); } }
Az url navigálásához írható kód a driver.get(“http://example.com”), míg az illesztőprogram a Selenium WebDriver felület Webdriver példánya.
látogasson el ide, hogy megértse, hogyan kell elindítani az összes böngészőt a Seleniumban.
Hogyan működik a get módszer a szelénben belül:
Amint ez a get() metódus meghívásra kerül a tesztszkriptből, akkor a Webdriver hivatkozás, azaz az illesztőprogram megvárja, amíg az oldal betöltődik, valójában a get() metódus belsőleg aktiválódik. betöltési funkció amely az oldal teljes betöltése után visszaadja a fogantyút az illesztőprogram-hivatkozáshoz.
A szelén előre és hátra navigálás:
Az url-re való navigálás másik módja a böngésző előzményeivel a navigate() metódus használata, ahol a Selenium a böngésző előzményei alapján navigál előre vagy vissza a megfelelő URL-ekkel, például:
Szelén navigáljon előre
public void navigateForward() { try { driver.navigate().forward(); BASE_LOGGER.info("Sikeres előrenavigáció" ); } catch (Exception ex) { String kivételData = ex.getCause().getMessage(); BASE_LOGGER.error("Nem lehet navigálni a következő hibával: " + kivételData); } }
Szelén navigate Vissza:
public void navigateBack() { try { driver.navigate().back(); BASE_LOGGER.info("Sikeresen navigált Vissza az URL-hez "); } catch (Exception ex) { String kivételData = ex.getCause().getMessage(); BASE_LOGGER.error("Nem lehet navigálni Vissza az URL-hez : a következő hibával: " + kivételData); } }
Szelén frissítő oldal
Használhatjuk a refresh() metódust a Selenium navigate-ból
public void seleniumRefreshPage() { try { driver.navigate().refresh(); BASE_LOGGER.info("A szelén frissítési oldal sikeresen megtörtént"); } catch (Exception ex) { String kivételData = ex.getCause().getMessage(); BASE_LOGGER.error("Nem lehet végrehajtani a szelén frissítési oldalt : a következő hibával: " + kivételData); } }
Szelén kattan
Bármilyen kattintási művelet végrehajtásához a Selenium click-el, az alábbi megközelítésben a click() nevű metódust kell használnunk. Vannak más módok is a kattintási műveletek végrehajtására a Selenium WebElement bármelyikén, például JavaScriptClick használatával, ami esetenként nagyon hasznos. ahol a szokásos szelén kattintási módszer nagyon stabilan működik, vannak olyan esetek, amikor ha IE böngészővel automatizál, és ha a tesztelt webalkalmazás valamilyen bootstrap JS-be van építve, akkor előfordulhat, hogy a normál szelén kattintási módszer valamikor nem működik , ebben az esetben használhatja a Javascript kattintási módszert.
public void safeClick(By elem) { try { driver.findElement(element).click(); BASE_LOGGER.info("Safeclick 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 + " az elemre történő biztonságos kattintás során: " + elem); } }
Az elemet különböző lokátorstratégiákkal (pl. xpath, name, css stb.) adhatja át a findElement() nevű metódusban, majd hajtsa végre a click() metódus műveletét a fentiek szerint.
Szelén küldőkulcsok
Amikor szöveget kell beírnunk egy szövegmezőbe a Seleniumon keresztül, akkor a Selenium sendkeys() metódust használjuk úgy, hogy a sendKeys(“Beírandó szöveg”) metódusban paraméterként adjuk át a „Beviendő szöveg” paramétert, és hasonló a click() metódus ezt a módszert bármely webElementre (itt webes szövegdobozra) is alkalmazzák, így a driver.findElement használatával kell elküldenünk a szöveget abba a TextBoxba.
A mintakód így néz ki:
public void enterTextIntoElement(By element, String textToBeEntered) { try { driver.findElement(element).sendKeys(Beadandó szöveg); BASE_LOGGER.info( "enterTextIntoElement művelet végrehajtásra került a lokátorhoz : " + String.valueOf(elem)); } catch (Exception ex) { String kivételData = ex.getCause().getMessage(); BASE_LOGGER.error("Az enterTextIntoElement művelet meghiúsult a lokátornál: " + String.valueOf(element) + " azzal a kivétellel, hogy pl.: " + kivételData); } }
Szelén tiszta szövegmező
Ha egy korábban kitöltött szövegmezőből szeretnénk bármilyen adatot törölni, használhatjuk a clear() nevű metódust, illetve a Selenium Keys Class segítségével is megtehetjük , amelyen keresztül a Billentyűzet műveleteket a billentyűparancsokkal együtt közvetlenül is elvégezhetjük. :
Az adatok törléséhez a clear() metódus segítségével az alábbi megközelítésben írhatunk:
public void clearField(By elem) { try { driver.findElement(element).clear(); BASE_LOGGER.info("ClearField 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("A ClearField művelet meghiúsult a lokátornál: " + String.valueOf(element) + " azzal a kivétellel, hogy pl.: " + kivételData); } }
A Keys osztály használatával a következő megközelítésben a Szöveg mezőket is törölhetjük.
Szelén maximalizálási ablak
Ha a böngészőautomatizálással dolgozunk, ha maximalizálnunk kell az ablakot a szelénben, akkor a következő megközelítéseket használhatjuk:
A szelénablak maximalizálása a Maximize() metódussal:
public void maximizeWindow() { try { driver.manage().window().maximize(); BASE_LOGGER.info("Sikeresen maximalizálta az ablakot"); } catch (e kivétel) { BASE_LOGGER.info("Kivétel történt az ablak maximalizálása közben: " + e.getCause().getMessage()); } }
Szelén maximalizálása ablak a ChromeOptions for ChromeBrowser használatával:
Az alábbi módszerrel egy Chrome böngészőpéldányt állítunk be a Webdriverhez maximalizált módban, és a visszaadott illesztőprogram-munkamenet ugyanazon a szolgáltatáson (vagyis az ablak maximalizálásán) folytatódik a további webes működéshez a szkript szerint.
public WebDriver openBrowserInMaximizeWindow(){ try { ChromeOptions options = new ChromeOptions(); options.addArguments("start-maximalizált"); WebDriver illesztőprogram = új ChromeDriver(opciók); }catch(e. kivétel){ BASE_LOGGER.error("Kivétel történt a következővel: " + e.getCause().getMessage()); } return driver; }
Szelén minimalizálási ablak
Minimalizálhatjuk az ablakot a Selenium minimize() paranccsal a következő megközelítéssel:
public void minimalizeWindow() { try { driver.manage().window().minimize(); BASE_LOGGER.info("Sikeresen minimalizálva az ablak"); } catch (e kivétel) { BASE_LOGGER.info("Kivétel történt az ablak minimalizálása közben mint : " + e.getCause().getMessage()); } }
A Selenium bezárja a böngészőt:
A Selenium böngészőjének bezárásához a close() metódust használjuk az alábbi megközelítésben:
public void closeCurrentWindow() { try { if (null != driver) { driver.close(); BASE_LOGGER.info("Az aktuális ablak/böngésző sikeresen bezárva"); } else { BASE_LOGGER.info("Az aktuális ablak/böngésző példány nem zárható be NULL-ként"); } } catch (e kivétel) { BASE_LOGGER.info("Kivétel történt az aktuális ablak/böngésző bezárásakor"); } }
A Selenium kilép a böngészőből
A Selenium összes böngészőpéldányának kilépéséhez a quit() metódust használjuk az alábbi megközelítésben:
public void quitBrowser() { try { if (null != driver) { driver.quit(); BASE_LOGGER.info("Sikeresen kilép a böngészőből"); } else { BASE_LOGGER.info("Nem lehet KIlépni a böngészőből, mert NULL"); } } catch (e kivétel) { BASE_LOGGER.error("Kivétel történt a böngésző KIlépése közben"); } }
A driver.close() és driver.quit() közötti különbség a Seleniumban:
Középfokú Selenium webdriver parancsok – válaszok:
Szelén csökkenése:
A Weboldal DOM struktúrájában a legördülő menüt a HTML címkéjének kiválasztása vagy bevitele hajtja végre.
webes műveletekhez a legördülő menükben, a „Select” osztályt kell használnunk a Selenium WebDrivers API-ból a „org.openqa.selenium.support.ui” csomag a Selenium WebDriver-tól.
A Selenium legördülő menüjének kiválasztásakor 2 különböző problémamegjelenítés vagy kérdés van:
Egyszerre egyetlen elem kiválasztása a legördülő menüben
Az alábbi megközelítésben a legördülő menüvel dolgozhatunk:
Első lépés :
Létre kell hoznia egy fogantyút a DropDown WebElement számára a Select class Object létrehozásával az alábbi módon:
Select select = new Select(WebElement webelem);
Második lépés:
Három különböző megközelítés létezik az érték kiválasztására a szelén legördülő menüjéből, az alábbi módszerek bármelyikével kiválaszthatjuk az értéket a szelén legördülő menüjéből:
Íme az alábbi megközelítés, amellyel kiválaszthatjuk az értéket a legördülő menüből:
A szelén legördülő listája – Első megközelítés:
Az Approach One-ban használhatja a látható szöveg a Webelem kívánt kiválasztása menüpontjában.
public void selectFromDropDownByText(Lokátor szerint, String láthatóSzöveg) { try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByVisibleText(visibleText); BASE_LOGGER.info("SelectFromDropDownByText művelet végrehajtásra került a lokátorhoz : " + String.valueOf(locator)); } catch (e kivétel) { String kivételData = e.getCause().getMessage(); BASE_LOGGER.error("Hiba történt pl.: " + kivételData + " a selectFromDropDownByText végrehajtásakor a következő elemen: " + locator); } }
A fenti módszerrel átadhatja a legördülő menü keresőjét és a látható szöveget, amelyet ki szeretne választani a legördülő listából, majd elvégzi a kívánt műveletet: A várt legördülő elem kiválasztása.
A szelén legördülő listája – Második megközelítés:
Ebben a megközelítésben a webelemet a kívánt webelem legördülő menüből kiválasztott érték attribútuma használatával választja ki:
public void selectFromDropDownByValue(Lokátor szerint, String láthatóText) { try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByValue(“Kívánt webelem értéke ”); BASE_LOGGER.info("selectFromDropDownByValue művelet végrehajtva a lokátorhoz : " + String.valueOf(locator)); } catch (e kivétel) { String kivételData = e.getCause().getMessage(); BASE_LOGGER.error("Hiba történt pl.: " + kivételData + " a selectFromDropDownByValue végrehajtásakor a következő elemen: " + locator); } }
A fenti módszerrel átadhatja a legördülő menü keresőjét és a legördülő menüből kiválasztani kívánt WebElement érték attribútumait, majd elvégzi a kívánt műveletet A várt legördülő elem kiválasztása.
A szelén legördülő listája – Harmadik megközelítés:
Ebben a megközelítésben a Webelem kiválasztásához használja a kívánt webelem legördülő menüből az indexét (a WebElement sorrendje a HTML select tag-ban), az index általában 0-tól kezdődik:
public void selectFromDropDownByIndex(Lokátor szerint, String láthatóSzöveg) { try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByIndex(5); BASE_LOGGER.info("selectFromDropDownByIndex művelet végrehajtva a lokátorhoz : " + String.valueOf(locator)); } catch (e kivétel) { String kivételData = e.getCause().getMessage(); BASE_LOGGER.error("Hiba történt pl.: " + kivételData + " a selectFromDropDownByIndex végrehajtásakor a következő elemen: " + locator); } }
A fenti módszerrel átadhatja annak a WebElement legördülő menüjének és indexének/sorrendjének lokátorát (a legördülő menü Select Tagjában), amelyet a legördülő menüből ki szeretne választani, majd elvégzi a kívánt műveletet: A várt legördülő elem kiválasztása .
Egyszerre több elem kiválasztása egy legördülő menüben
A HTML DOM szerkezetétől és megvalósításától függ, hogy bármelyik legördülő elemnél megengedett-e több elem kiválasztása. A szelén több elemének kiválasztásához az alábbi két lépést kell követnünk:
Első lépés : Ellenőrizze, hogy a DropDown WebElement lehetővé teszi-e a többszörös kijelölést a metódus használatával isMultiple() , ez a logikai értéket igaznak vagy hamisnak adja vissza.
Második lépés: ha a fenti lépés igazat ad vissza, akkor a legördülő menü lehetővé teszi a többszörös kiválasztást. És ezt követően a fent tárgyalt három különböző megközelítés bármelyikét/mindkét használhatjuk több érték kiválasztásához és a kívánt műveletek végrehajtásához.
Befejezésül az alábbiakban a mintakód:
WebElement elem =driver.findElement(By.xpath("A legördülő menü XPUTA")); Select selectMultiple = new Select(elem); if(selectMultiple.isMultiple()){ selectMultiple.selectByIndex(1); selectMultiple.selectByIndex(2); //Hasonlóan más megközelítéseket/módszereket is használhatunk a legördülő elemek kiválasztásához, mint például a selectByVisibleText vagy a selectByValue }
Drag and drop a szelénben :
Az oktatóanyag szegmensében megtanuljuk a Drag and Drop in Selenium végrehajtásának különböző megközelítéseit, például:
Mi a drag and drop a szelénben, és hol használják:
A fogd és vidd egy speciális művelet, amikor a felhasználók az Ön webalkalmazásaihoz navigálnak, és műveletet próbálnak végrehajtani (egérmozgatással húzva) valamilyen webelemen, amely szabadon mozoghat az alkalmazás felett, és eldobható az adott alkalmazás weboldalának más helyére.
Itt a húzott elemet Forrás WebElementnek, az elemet pedig, ahonnan eldobják, Destination WebElementnek nevezik.
A fenti forgatókönyvek végrehajtásához az Automation with Selenium segítségével, át kell húznunk a Selenium által biztosított funkciókat.
A szelén húzásával és ejtésével kapcsolatos különböző megközelítések:
Drag and Drop in Selenium Build() metódussal:
A Build() metódus belső működése :
build() metódus a Selenium Actions osztályából, amely a csomag része org.openqa.selenium.interactions belsőleg összetett műveleteket generál
a build() metódus meghívása előtt meghívott vagy kiváltott műveletek kombinálásával.
Például:
new Actions(driver).clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build();
A fenti, a drag and drop művelet összeállításának végrehajtására vonatkozó utasítást a korábbi műveletek, például a clickAndHold, a moveToElement és a release metódusok összekapcsolására használják.
Íme az alábbi kódrészlet a Drag and Drop művelet végrehajtásához a Seleniumban az Actions osztály felépítési módszerével:
public void dragAndDrop(Forrás szerint, Cél szerint) { try { WebElement sourceElement = driver.findElement(source); WebElement célElem = driver.findElement(destination); Actions builder = new Actions(driver); Művelet dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build(); dragAndDrop.perform(); BASE_LOGGER.info("A fogd és vidd művelet sikeresen végrehajtva"); } catch (e kivétel) { String kivételData = e.getCause().getMessage(); BASE_LOGGER.error("Hiba történt pl.: " + kivételData + " a DragAndDrop végrehajtása közben "); } }
Drag and Drop in Selenium a dragAndDrop() metódussal:
A dragAndDrop() metódus belső működése:
dragAndDrop(sourceWebElement,destinationWebElement) metódus alapvetően két argumentumot használ, az egyik a forrás, a másik pedig a cél webelem.
dragAndDrop megszünteti a szükségességét clickAndHold,moveToElement,release metódusok az Action osztályban, belsőleg kezeli az összes forgatókönyvet, amelyet ezek a metódusok hajtanak végre.
Íme az alábbi kódrészlet a dragAndDrop dragAndDrop módszerrel történő végrehajtásához:
public void dragAndDropOps(Forrás szerint, Cél szerint) { try { WebElement sourceElement = driver.findElement(source); WebElement célElem = driver.findElement(destination); Actions builder = new Actions(driver); builder.dragAndDrop(sourceElement,destinationElement).perform(); BASE_LOGGER.info("A fogd és vidd művelet sikeresen végrehajtva"); } catch (e kivétel) { String kivételData = e.getCause().getMessage(); BASE_LOGGER.error("Hiba történt pl.: " + kivételData + " a DragAndDrop végrehajtása közben "); } }
Drag and Drop in Selenium dragAndDropBy() metódussal:
A dragAndDropBy(WebElement forrás, int xOffset, int yOffset) metódus belső működése:
A dragAndDropBy() metódus 3 argumentumot vesz fel, amelyek a következők:
Source WebElement : az Elem, amely át van húzva, azaz a forráselem
xOffset : a célhely vízszintes eltolása
yEltolás: a célhely függőleges eltolása
Belsőleg ez a metódus veszi a forrás webelemet, és áthelyezi és kiadja a célhelyre. Ez a módszer akkor hasznos, ha bármilyen forrás webelemet át szeretne helyezni bármely képpont helyre.
Az alábbiakban látható a DragAndDropBy in Selenium kódrészlete:
public void dragAndDropByOps(Forrás szerint, int xOffSet,int yOffSet) { try { WebElement sourceElement = driver.findElement(forrás); Actions builder = new Actions(driver); builder.dragAndDropBy(sourceElement,xOffSet,yOffSet).build().perform(); BASE_LOGGER.info("A fogd és vidd művelet sikeresen végrehajtva"); } catch (e kivétel) { String kivételData = e.getCause().getMessage(); BASE_LOGGER.error("Hiba történt pl.: " + kivételData + " a DragAndDrop végrehajtása közben "); } }
Látogasson el ide az Intermediate Selenium webdriver parancsok többi fejlett készletéért.
Advance Selenium WebDriver parancsok - Válaszok:
Kattintson duplán a szelénre :
A művelet megismétléséhez, azaz dupla kattintáshoz a Seleniumban az egérrel, dupla kattintást kell végrehajtanunk az Actions osztályon keresztül a Seleniumban, és ezt az alábbi megközelítéssel tehetjük meg:
public void doubleClick(Lokátor szerint) { try { WebElement elem = driver.findElement(locator); Actions action = new Actions(driver); action.doubleClick(elem).perform(); BASE_LOGGER.info("Végrehajtotta a dupla kattintást az elemre: " + lokátor); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Az elem nincs csatolva az oldaldokumentumhoz " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Elem " + locator + " nem található a DOM-ban " + e.getCause().getMessage()); } catch (e kivétel) { BASE_LOGGER.error("Elem " + lokátor + " nem volt kattintható " + e.getCause().getMessage()); } }
A fenti kódrészlet egy olyan metódus, amely alapvetően egy argumentumot használ lokátorként, azaz azt a WebElementet, amelyen a dupla kattintást végre kell hajtani.
Kontextus kattintás a szelénben:
A kontextusban történő kattintás vagy a jobb gombbal végzett művelet egérrel történő replikálásához végre kell hajtanunk a kontextus kattintási módszert a Actions osztályon keresztül a Seleniumban, és ezt az alábbi megközelítéssel tehetjük meg:
public void rightClick(By locator) { try { WebElement elem = driver.findElement(locator); Actions action = new Actions(driver); action.contextClick(element).perform(); BASE_LOGGER.info("A kontextus végrehajtása Kattintson az elemre : " + lokátor); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Az elem nincs csatolva az oldaldokumentumhoz " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Elem " + locator + " nem található a DOM-ban " + e.getCause().getMessage()); } catch (e kivétel) { BASE_LOGGER.error("Elem " + lokátor + " nem volt kattintható " + e.getCause().getMessage()); } }
A részletes Advance Selenium webdriver parancsokért látogasson el ide. Továbbá, hogy megértse a Akcióóra a szelénben és megvalósításai látogassanak el ide.
Kritikus GYIK:
Mi az a management() a Seleniumban?
A driver.manage() a WebDriver.Options Interface megvalósításának hivatkozását adja vissza. Az Options interfész egy olyan felület, amellyel a böngésző menüjében kezelheti és kezelheti a műveleteket, például:
A kimerítő készletekhez Szelén interjú Kérdések - A kritikus és haladó készletek ide látogatnak el.
Következtetés:
Az oktatóanyag ebben a részében az alapokkal foglalkoztunk Szelén webdriver parancsok , Kattintson ide a Középfokú és Advance Selenium webdriver parancsok. Ha szeretné megtanulni a szelént a semmiből, kattintson ide.