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.

Billentyűzet és egér események kezelése

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.

Billentyűzet és egér események kezelése

Step 2) Példányosítson egy új Actions objektumot.

Billentyűzet és egér események kezelése

Step 3) Példányosítson egy műveletet az Actions objektum segítségével a 2. lépésben.

Billentyűzet és egér események kezelése

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.

Billentyűzet és egér események kezelése

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.

Akcióosztály Selenium

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.

Több akciósorozat felépítése

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() ;

}

Több akciósorozat felépítése

Ö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.