Akční třída v Selenium – Události kliknutí myší a klávesnice

V tomto tutoriálu se naučíme zacházet s Keyboard and Mouse Event in Selenium Webdriver

Akční třída v Selenium

Akční třída v Selenium je vestavěná funkce poskytovaná selenem pro zpracování událostí klávesnice a myši. Zahrnuje různé operace, jako je kliknutí na více událostí pomocí ovládacího tlačítka, události drag and drop a mnoho dalších. Tyto operace ze třídy akcí se provádějí pomocí pokročilého rozhraní API pro interakci s uživatelem Selenium Webdriver.

Zvládání událostí klávesnice a myši

Zpracování speciálních událostí klávesnice a myši se provádí pomocí Rozhraní API pro pokročilé uživatelské interakce. Obsahuje Akce a Akce třídy, které jsou potřebné při provádění těchto událostí. Níže jsou uvedeny nejběžněji používané události klávesnice a myši poskytované třídou Actions.

Metoda Description
clickAndHold() Kliknutí (bez uvolnění) na aktuální pozici myši.
contextClick() Provede kontextové kliknutí na aktuální pozici myši. (Akce kliknutím pravým tlačítkem myši)
doubleClick() Provede poklepání na aktuální pozici myši.
dragAndDrop(zdroj, cíl) Provede kliknutí a podržení v umístění zdrojového prvku, přesune se do umístění cílového prvku a poté uvolní myš.

parametry:

zdrojový prvek k emulaci tlačítka dole na.

cílový prvek, na který se přesunete a uvolníte myš.

dragAndDropBy(zdroj, x-posun, y-posun) Provede kliknutí a podržení v místě zdrojového prvku, posune se o daný posun a poté uvolní myš.

parametry:

zdrojový prvek k emulaci tlačítka dole na.

xOffset- horizontální posun posunutí.

yOffset- posunutí vertikálního posunu.

keyDown(modifikační_klíč) Provede stisk modifikační klávesy. Neuvolňuje modifikační klávesu – následné interakce mohou předpokládat, že je stisknutá.

parametry:

modifikační_klíč – jakákoliv modifikační klávesa (Keys.ALT, Keys.SHIFT nebo Keys.CONTROL)

keyUp(modifikátor _key) Provede uvolnění klíče.

parametry:

modifikační_klíč – jakákoliv modifikační klávesa (Keys.ALT, Keys.SHIFT nebo Keys.CONTROL)

moveByOffset(x-posun, y-posun) Posune myš ze své aktuální pozice (nebo 0,0) o daný offset.

parametry:

x-offset- horizontální offset. Záporná hodnota znamená pohyb myši doleva.

y-offset- vertikální offset. Záporná hodnota znamená pohyb myši dolů.

moveToElement(toElement) Přesune myš do středu prvku.

parametry:

toElement- prvek, ke kterému se má přesunout.

uvolnění() Uvolní stisknuté levé tlačítko myši v aktuální poloze myši
sendKeys(onElement, charsequence) Odešle sérii úhozů na prvek.

parametry:

onElement – ​​prvek, který bude přijímat stisknuté klávesy, obvykle textové pole

charsequence – libovolná řetězcová hodnota představující sekvenci odeslaných úhozů

V následujícím příkladu použijeme metodu moveToElement() k přejetí myší na jeden Mercury Řádky tabulky zájezdů. Viz příklad níže.

Zvládání událostí klávesnice a myši

Výše uvedená buňka je částí a živel. Pokud není umístěn, jeho barva je #FFC455 (oranžová). Po najetí se barva buňky zprůhlední. Stane se stejnou barvou jako modré pozadí celého oranžového stolu.

Krok 1) Importujte Akce si Akce třídy.

Zvládání událostí klávesnice a myši

Krok 2) Vytvořte instanci nového objektu Actions.

Zvládání událostí klávesnice a myši

Krok 3) Vytvořte instanci Akce pomocí objektu Actions v kroku 2.

Zvládání událostí klávesnice a myši

V tomto případě použijeme metodu moveToElement(), protože jednoduše přejedeme myší na odkaz „Domů“. Metoda build() je vždy poslední použitou metodou, takže všechny uvedené akce budou zkompilovány do jediného kroku.

Krok 4) Při provádění objektu Action, který jsme navrhli v kroku 3, použijte metodu perform().

Zvládání událostí klávesnice a myši

Níže je celý kód WebDriver pro kontrolu barvy pozadí souboru prvek před a po přejetí myší.

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

Níže uvedený výstup jasně uvádí, že barva pozadí se po najetí myší stala průhlednou.

Akční třída v Selenium

Vytvoření řady vícenásobných akcí

Pomocí tříd Action a Actions můžete vytvořit řadu akcí. Nezapomeňte sérii uzavřít pomocí metody build(). Zvažte ukázkový kód níže.

Budování řady více akcí

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

}

Budování řady více akcí

Shrnutí

  • Zpracování speciálních událostí klávesnice a myši se provádí pomocí AdvancedUserInteractions API.
  • Často používané události klíčového slova a myši jsou doubleClick(), keyUp, dragAndDropBy, contextClick & sendKeys.