Akcióosztály Selenium – Egérkattintás és billentyűzet események
Ebben az oktatóanyagban megtanuljuk a billentyűzet és az egér eseményeinek kezelését Selenium Webdriver
Akcióosztály Selenium
Akcióosztály Selenium a szelén által biztosított beépített funkció a billentyűzet és az egér események kezelésére. Különféle műveleteket foglal magában, például több eseményre kattintást a vezérlőgombbal, drag and drop eseményeket és még sok mást. Ezeket a műveletosztályból származó műveleteket a fejlett felhasználói interakciós API segítségével hajtják végre Selenium Webdriver.
Billentyűzet és egér események kezelése
A speciális billentyűzet- és egéresemények kezelése a Advanced User Interactions API. Ez tartalmazza a Hozzászólások és a Akció osztályok, amelyek ezeknek az eseményeknek a végrehajtásához szükségesek. Az alábbiakban találhatók az Actions osztály által biztosított leggyakrabban használt billentyűzet- és egéresemények.
Módszer | Description |
---|---|
clickAndHold() | Kattintások (elengedés nélkül) az egér aktuális helyén. |
ContextClick() | Környezeti kattintást hajt végre az egér aktuális helyén. (Jobb klikk egérművelet) |
doubleClick() | Dupla kattintást hajt végre az egér aktuális helyén. |
dragAndDrop(forrás, cél) | Kattintást és tartást hajt végre a forráselem helyén, a célelem helyére lép, majd felengedi az egeret.
paraméterek: forrás-elem emulálandó gomb lefelé. cél elem, amelyre át kell lépni, és fel kell engedni az egeret. |
dragAndDropBy(forrás, x-eltolás, y-eltolás) | Kattintson és tartsa lenyomva a forráselem helyét, elmozdul egy adott eltolást, majd felengedi az egeret.
paraméterek: forrás-elem emulálandó gomb lefelé. xOffset – vízszintes eltolás. yEltolás – függőleges eltolás. |
keyDown(módosító_kulcs) | Módosító gombnyomást hajt végre. Nem engedi el a módosító billentyűt – a későbbi interakciók feltételezhetik, hogy lenyomva tartják.
paraméterek: módosító_kulcs – bármely módosító billentyű (Keys.ALT, Keys.SHIFT vagy Keys.CONTROL) |
keyUp(módosító _kulcs) | Kulcsfelengedést hajt végre.
paraméterek: módosító_kulcs – bármely módosító billentyű (Keys.ALT, Keys.SHIFT vagy Keys.CONTROL) |
moveByOffset(x-eltolás, y-eltolás) | Elmozdítja az egeret az aktuális pozícióból (vagy 0,0-ról) a megadott eltolásnak megfelelően.
paraméterek: x-eltolás- vízszintes eltolás. A negatív érték az egér balra mozgatását jelenti. y-eltolás- függőleges eltolás. A negatív érték az egér lefelé mozgatását jelenti. |
mozgatni az elemhez (elemhez) | Az egeret az elem közepére mozgatja.
paraméterek: toElement- elem, amelyre áthelyezhető. |
kiadás() | Elengedi a lenyomott bal egérgombot az egér aktuális helyén |
sendKeys (egy elem, karaktersorozat) | Egy sor billentyűleütést küld az elemre.
paraméterek: onElement – elem, amely megkapja a billentyűleütéseket, általában egy szövegmező charsequence – bármely karakterlánc érték, amely a küldendő billentyűleütések sorozatát reprezentálja |
A következő példában a moveToElement() metódussal vigyük az egérmutatót az egyikre Mercury Tours táblázatsorai. Lásd az alábbi példát.
A fent látható cella egy része a elem. Ha nincs lebegve, a színe #FFC455 (narancs). Lebegés után a cella színe átlátszóvá válik. Ugyanolyan színűvé válik, mint az egész narancssárga asztal kék háttere.
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) Példányosítson egy műveletet az Actions objektum segítségével a 2. lépésben.
Ebben az esetben a moveToElement() metódust fogjuk használni, mert egyszerűen a „Home” hivatkozásra visszük az egeret. A build() metódus mindig a végső használt metódus, így az összes felsorolt művelet egyetlen lépésben lesz lefordítva.
Step 4) Használja a perform() metódust a 3. lépésben általunk tervezett Action objektum végrehajtásakor.
Az alábbiakban a teljes WebDriver kódot találja a háttérszín ellenőrzéséhez elem az egérmutató 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 = "http://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 egyértelműen azt mondja, hogy a háttérszín átlátszóvá vált az egérmutató után.
Több akciósorozat felépítése
Műveletek sorozatát építheti fel az Action és Actions osztályok segítségével. Ne felejtse el bezárni a sorozatot a build() metódussal. Vegye figyelembe az alábbi mintakódot.
public static void main(String[] args) { String baseUrl = "http://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() ; }
Összegzésként
- A speciális billentyűzet- és egéresemények kezelése az AdvancedUserInteractions API segítségével történik.
- A gyakran használt kulcsszó- és egéresemények a doubleClick(), a keyUp, a dragAndDropBy, a contextClick & sendKeys.