Megbeszéljük és megtanuljuk a Selenium Actions osztályának kimerítő használatát a különböző webes műveletekben. Az Actions Class in Selenium széles körben használható különféle webes műveletek végrehajtására, mint például az egér és a billentyűzet mozgatása, amelyek előremutató webböngésző műveletek.
Egérműveletek
Billentyűzet műveletek
Akcióosztály szelénben
Mi az Actions Class a szelénben:

Az Actions Class a csomagból származó Selenium Bundle Api osztálya org.openqa.selenium.interactions kritikus fontosságú webes interakciók kezelésére és előrehaladására a felhasználókkal a böngészőautomatizáláson keresztül. Fogantyút biztosít a felhasználóknak a különféle egér- és billentyűzetműveletek végrehajtásához a fent említett különböző módszerekkel.

Itt megvitatjuk az összes webes interakciót a szelén Műveletek Osztályon keresztül, kezdésként Megtanuljuk az egér interakciókat, és továbblépünk a Billentyűzet interakciók műveletekkel osztálya felé a Seleniumban.
Mouse Interactions – Akcióosztály szelénben
Drag and drop a szelénben
A szelénben a húzás és vidd három különböző megközelítésben végezhető el a szelén Actions osztályával:
Drag and Drop in Selenium with Akció Szelén osztály építési módszerrel:
Két webelemmel kell rendelkeznünk a húzással a Seleniumban, mint például a Source WebElement (amelyet át kell húzni) és a Destination WebElement (Ahol a Source WebElement el kell dobni, azaz a Destination WebElement). Az alábbi módszer egy testreszabott módszer ( amelyet felhasználhat a Framework WebUtils felépítéséhez), amelyek a Drag and Drop funkciót hajtják végre a Seleniumban, és ez a módszer két argumentumot tartalmaz, az egyik a Source WebElement, a másik pedig a Destination WebElement, amint azt korábban említettük:
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 "); } }
Kattintson ide, ha meg szeretné ismerni a fogd és vidd módszert, és megismerheti a szelénben történő húzás és vidd művelet végrehajtásához szükséges összes megközelítést.
Kattintson és tartsa lenyomva a Seleniumban
A ClickAndHold egy másik fontos módszer a Selenium Actions osztályából (az org.openqa.selenium.interactions csomagból)
először hajtsa végre a bal kattintási műveletet bármelyik webElement felett, és tartsa lenyomva az egér felengedése nélkül.
Ezt a módszert főként a drag and drop forgatókönyvek végrehajtása során használják, alább látható a minta kódkép:

MoveToElement in Selenium
A MoveToElement a Selenium Actions osztályának metódusa, amellyel egy másik webelemre (cél webelemre) való áthelyezést hajthat végre, amelyet ez a metódus megfelelő argumentumként vesz fel.
Ezt a módszert főként a drag and drop forgatókönyvek végrehajtása során használják, alább látható a minta kódkép:

Dupla kattintás a szelénben
A dupla kattintás egérrel történő replikálásához 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 vesz fel Keresőként, azaz azt a WebElementet, amelyen a dupla kattintást végre kell hajtani.
kontextus kattintás vagy szelén jobb gombbal
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 fenti kódrészlet egy olyan metódus, amely alapvetően egy argumentumot vesz fel Keresőként, azaz azt a WebElementet, amelyen a dupla kattintást végre kell hajtani.
Szünet a szelénben
Ha bármilyen késleltetést szeretnénk bevezetni a különböző műveletek között, használhatjuk a pause metódust az Actions műveletek között, például ha azt szeretnénk, hogy néhány másodperc késleltetés legyen a drag and drop művelet között, akkor hívhatjuk a pause( ) Az Actions Class in Selenium módszere az alábbi megközelítésben:
public void pauseBetweenActions(Forrás szerint,Célhely szerint, int időegység) { try { WebElement sourceElement = driver.findElement(source); WebElement célElem = driver.findElement(destination); Actions builder = new Actions(driver); builder.clickAndHold(sourceElement).moveToElement(destinationElement).pause(timeUnit).release(destinationElement).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 "); } }
A fenti metódusban három argumentumra van szükség: az egyik forrás WebElement, egy másik argumentum a cél elem, az utolsó pedig a timeUnit, azaz az időkésleltetés, amelyet a pause() segítségével szeretnénk bevezetni a Seleniumban.
Szelénben lebeg az egér
Az Egér lebegtetése a szelénben műveletet a szelén Actions osztály használatával érhetjük el, alapvetően, ha bármelyik webelemmel fókuszba kerülünk, és onnantól kezdve az egérmutatót bármely másik elemre szeretnénk mozgatni ezzel az egérmutató művelettel, és ez a WebElement, ahol az egérkurzorunkat Target WebElementnek nevezzük.
Alább látható ugyanennek a kódrészlete:
public void mouseHover(By targetedLocator) { try { WebElement targetedElement = driver.findElement(targetedLocator); Actions builder = new Actions(driver); builder.moveToElement(targetedElement).build().perform(); BASE_LOGGER.info("Sikeresen végrehajtva az egér lebegtetése szelén műveletben "); } catch (e kivétel) { String kivételData = e.getCause().getMessage(); BASE_LOGGER.error("Hiba történt pl.: " + kivételData + " az egér lebegtetése közben a szelénben "); } }
Hogy megtudja az összes A Selenium webdriver parancsot itt tekintheti meg .
Billentyűzetműveletek – Akcióosztály szelénben
Mi a billentyűzet műveletek, és hol szükséges:
A billentyűzetműveletek azt jelentik, hogy a műveleteket közvetlenül a billentyűzetről hajtják végre, például azt, hogy megpróbáljuk végrehajtani a Ctrl+A vagy a Control+C billentyűkombinációt együtt, vagy a Billentyűzet fel vagy a Billentyűzet le gombot a billentyűzetről végrehajtani, miközben a WebElements szolgáltatással kommunikálunk.
A Selenium Actions osztályának segítségével számos billentyűzet interakciót hajthatunk végre
sendKeys szelénben :
A sendKeys műveletet a Selenium Actions osztályának segítségével az alábbi módon hajthatjuk végre:
public void sendKeysWithActionClass(By locator) { try { WebElement elem = driver.findElement(locator); Actions action = new Actions(driver); action.sendKeys("Billentyűzet adatbevitel"); // Billentyűzet műveletek végrehajtása a Control és a c együttes lenyomásával actions.sendKeys(Keys.CONTROL); action.sendKeys("c"); action.build().perform(); } catch (e kivétel) { String kivételData = e.getCause().getMessage(); } }
KeyUp szelénben :
Hasonlóképpen KeyUp műveleteket hajthatunk végre a Selenium Actions osztályával az alábbi módon:
public void kulcsUpWithActionClass(Lokátor szerint) { try { WebElement elem = driver.findElement(locator); Actions action = new Actions(driver); action.sendKeys("Billentyűzet adatbevitel"); // Billentyűzet műveletek végrehajtása a Control és a c billentyűkkel együtt a keyUp actions.keyUp(Keys.CONTROL) kifejezéssel; action.sendKeys("c"); action.build().perform(); } catch (e kivétel) { String kivételData = e.getCause().getMessage(); } }
KeyDown szelénben
A keyDown műveletet a Selenium ismételt Actions osztályának segítségével hajthatjuk végre az alábbi megközelítésben:
public void keyDownWithActionClass(Lokátor szerint) { try { WebElement elem = driver.findElement(locator); Actions action = new Actions(driver); action.sendKeys("Billentyűzet adatbevitel"); // Billentyűzet műveletek végrehajtása a Control és a V billentyűkkel együtt a keyDown actions.keyDown(Keys.CONTROL); action.sendKeys("v"); action.build().perform(); } catch (e kivétel) { String kivételData = e.getCause().getMessage(); } }
Következtetés: Ezekkel itt végeztünk az Actions osztállyal a Seleniumban, a hamarosan megjelenő JavascriptExecutor oktatóanyagban szelénben modulárisan, mégis kimerítő módon. Tanulni Kimerítően a Szelén parancs ide is hivatkozhat a felkészüléshez A Szelénnel kapcsolatos kritikus interjúkérdéseket itt tekintheti meg.