Akcióosztály Selenium
⚡ Okos összefoglaló
Akcióosztály Selenium A program a Speciális felhasználói interakciók API-ján keresztül kezeli a speciális billentyűzet- és egérműveleteket, például az egérrel való mozgatást, a húzást és elengedést, a jobb gombbal kattintást és a billentyűkombinációkat. Ez az oktatóanyag ismerteti az Actions és az Action osztályokat, a kulcsmetódusokat, és azt, hogyan lehet több interakciót egyetlen sorozattá láncolni.

Akcióosztály Selenium
Akcióosztály Selenium egy beépített funkció a billentyűzet- és egérműveletek kezelésére. Támogatja az olyan műveleteket, mint a többszörös kattintás a Control billentyűvel, a húzás és elengedés és sok más. Ezeket a műveleteket a Speciális felhasználói interakciók API-jával lehet végrehajtani a... Selenium WebDriver.
Billentyűzet és egér események kezelése
A speciális billentyűzet- és egéresemények kezelése a következővel történik: Advanced User Interactions API. Ez tartalmazza a Hozzászólások és a Akció az események végrehajtásához szükséges osztályok. Az Actions osztály által biztosított leggyakrabban használt billentyűzet- és egéresemények az alábbiakban láthatók.
| Módszer | Leírás |
|---|---|
| clickAndHold() | Kattintások (elengedés nélkül) az egér aktuális helyén. |
| ContextClick() | Helyi kattintást (jobb kattintást) hajt végre az egér aktuális helyén. |
| doubleClick() | Dupla kattintást hajt végre az egér aktuális helyén. |
| dragAndDrop(forrás, cél) | Kattintás és nyomva tartás a forráselemen, ugrás a célelemre, majd elengedés. Paraméterek: forrás (kattintandó elem), cél (elengedendő elem). |
| dragAndDropBy(forrás, x-eltolás, y-eltolás) | Kattintás és nyomva tartás a forráselemen, adott eltolással elmozdul, majd elengedés. Paraméterek: forrás, xOffset (vízszintes), yOffset (függőleges). |
| keyDown(módosító_kulcs) | Lenyom egy módosító billentyűt anélkül, hogy elengedné, így a későbbi interakciók azt feltételezik, hogy lenyomva marad. Paraméter: egy módosító billentyű (Keys.ALT, Keys.SHIFT vagy Keys.CONTROL). |
| keyUp(módosító_kulcs) | Módosító billentyű feloldása. Paraméter: egy módosító billentyű (Keys.ALT, Keys.SHIFT vagy Keys.CONTROL). |
| moveByOffset(x-eltolás, y-eltolás) | Az egérkurzort az aktuális pozíciójából (vagy 0,0-ból) a megadott eltolással mozgatja. A negatív x balra, a negatív y felfelé mozdul. |
| mozgatni az elemhez (elemhez) | Az egérkurzort az elem közepére mozgatja. Paraméter: az elem, amelyre mozgatni kell. |
| kiadás() | Felengedi a lenyomott bal egérgombot az aktuális helyen. |
| sendKeys (egy elem, karaktersorozat) | Billentyűleütések sorozatát küldi el egy elemnek. Paraméterek: onElement (általában egy szövegmező), charsequence (az elküldendő billentyűleütések száma). |
A következő példában a moveToElement() módszer, hogy az egyik fölé vigyük az egeret Mercury Túrák táblázat sorai.
A fent látható cella egy része elem. Amikor nincs föléjük mozgatva az egérmutató, a színe #FFC455 (narancssárga). Az egér fölé mozgatása után a cella színe átlátszóvá válik, és megegyezik a környező táblázat hátterével.
Step 1) Importálja a Hozzászólások és a Akció osztályok.
Step 2) Példányosítson egy új Actions objektumot.
Step 3) Hozz létre egy Action példányt a 2. lépésben használt Actions objektummal.
Itt használjuk a moveToElement() módszer, hogy az egérmutatót a „Kezdőlap” link fölé vigyük. build() A metódust mindig utoljára hívjuk meg, így az összes felsorolt művelet egyetlen lépésbe lesz összeállítva.
Step 4) Használja a perform() metódus a 3. lépésben tervezett Action objektum végrehajtásához.
Az alábbiakban a teljes WebDriver kód látható, amely ellenőrzi a háttér színét. elem az egér fölé helyezése előtt és után.
package newproject;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
public class PG7 {
public static void main(String[] args) {
String baseUrl = "https://demo.guru99.com/test/newtours/";
System.setProperty("webdriver.gecko.driver", "C:\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get(baseUrl);
WebElement link_Home = driver.findElement(By.linkText("Home"));
WebElement td_Home = driver.findElement(By.xpath(
"//html/body/div/table/tbody/tr/td"
+ "/table/tbody/tr/td"
+ "/table/tbody/tr/td"
+ "/table/tbody/tr"));
Actions builder = new Actions(driver);
Action mouseOverHome = builder.moveToElement(link_Home).build();
String bgColor = td_Home.getCssValue("background-color");
System.out.println("Before hover: " + bgColor);
mouseOverHome.perform();
bgColor = td_Home.getCssValue("background-color");
System.out.println("After hover: " + bgColor);
driver.close();
}
}
Az alábbi kimenet azt mutatja, hogy a háttérszín átlátszóvá vált az egér fölé húzása után.
Több akciósorozat felépítése
Az Action és Actions osztályok segítségével akciósorozatokat hozhatsz létre. Ne felejtsd el a sorozatot a következővel lezárni: build() metódus. Tekintsük az alábbi mintakódot.
public static void main(String[] args) {
String baseUrl = "https://www.facebook.com/";
WebDriver driver = new FirefoxDriver();
driver.get(baseUrl);
WebElement txtUsername = driver.findElement(By.id("email"));
Actions builder = new Actions(driver);
Action seriesOfActions = builder
.moveToElement(txtUsername)
.click()
.keyDown(txtUsername, Keys.SHIFT)
.sendKeys(txtUsername, "hello")
.keyUp(txtUsername, Keys.SHIFT)
.doubleClick(txtUsername)
.contextClick()
.build();
seriesOfActions.perform();
}





