V tomto tutoriálu se naučíme manipulovat s událostí Keyboard and Mouse v Selenium Webdriver
Akční třída v selenu
Action Class in Selenium is a built-in feature provided by the selenium for handling keyboard and mouse events. Zahrnuje různé operace, jako je klikání na více událostí pomocí ovládací klávesy, události přetažení a mnoho dalších. Tyto operace z akční třídy se provádějí pomocí rozhraní API pro pokročilou interakci s uživatelem v Selenium Webdriver.
Zpracová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í Advanced User Interactions API . Obsahuje akce a třídy akcí, které jsou potřebné při provádění těchto událostí. Níže jsou uvedeny nejčastěji používané události klávesnice a myši poskytované třídou Akce.
Metoda | Popis |
---|---|
clickAndHold () | Kliknutí (bez uvolnění) na aktuální pozici myši. |
contextClick () | Provede kontextové kliknutí v aktuálním umístění myši. (Akce pravým tlačítkem myši) |
dvojklik() | Provede poklepání v aktuálním umístění myši. |
dragAndDrop (zdroj, cíl) | Provede kliknutí a podržení v místě zdrojového prvku, přesune se do umístění cílového prvku a poté uvolní myš. Parametry: source- element to emulate button down at. Target- element to move to and release the mouse at. |
dragAndDropBy (zdroj, x-offset, y-offset) | Provede kliknutí a podržení v místě zdrojového prvku, pohybuje se o dané odsazení a poté uvolní myš. Parametry : source- element to emulate button down at. XOffset - horizontální posun posunu. YOffset - vertikální posun posunutí. |
keyDown (modifier_key) | Provede stisk modifikační klávesy. Neuvolňuje modifikační klíč - následné interakce mohou předpokládat, že je stále stisknuto. Parametry : modifier_key - kterýkoli z modifikátorových kláves (Keys.ALT, Keys.SHIFT nebo Keys.CONTROL) |
keyUp (modifikátor _key) | Provede uvolnění klíče. Parametry : modifier_key - kterýkoli z modifikátorových kláves (Keys.ALT, Keys.SHIFT nebo Keys.CONTROL) |
moveByOffset (x-offset, y-offset) | Přesune myš z její aktuální polohy (nebo 0,0) o dané odsazení. 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, do kterého se má přesunout. |
uvolnění() | Uvolní stlačené levé tlačítko myši v aktuálním umístění myši |
sendKeys (onElement, charsequence) | Odešle řadu úhozů na prvek. Parametry : onElement - prvek, který bude přijímat stisknutí kláves, obvykle textové pole, posloupnost - libovolná hodnota řetězce představující posloupnost stisknutí kláves |
V následujícím příkladu použijeme metodu moveToElement () k přejetí myší na jeden řádek tabulky Mercury Tours. Viz příklad níže.
Buňka zobrazená výše je částí prvku
Krok 1: Import akcí a tříd akcí .
Krok 2: Vytvoření instance nového objektu Akce.
Krok 3: Vytvořte instanci akce pomocí objektu Akce v kroku 2.
V tomto případě použijeme metodu moveToElement (), protože jednoduše přejdeme myší na odkaz „Domů“. Metoda build () je vždy poslední použitá metoda, 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 ().
Níže je uveden celý kód WebDriveru, který slouží ke kontrole barvy pozadí prvku
balíček newproject;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;importovat org.openqa.selenium.interaction.Action;importovat org.openqa.selenium.interaction.Actions;veřejná třída PG7 {public static void main (String [] args) {Řetězec baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Ovladač WebDriver = nový FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Domů"));WebElement td_Home = ovladač.findElement (podle.xpath ("// html / body / div"+ "/ stůl / tělo / tr / td"+ "/ stůl / tělo / tr / td"+ "/ stůl / tělo / tr / td"+ "/ table / tbody / tr"));Tvůrce akcí = nové Akce (ovladač);Akce mouseOverHome = stavitel.moveToElement (link_Home).stavět();Řetězec bgColor = td_Home.getCssValue ("barva pozadí");System.out.println ("Před umístěním kurzoru myši: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("barva pozadí");System.out.println ("Po přechodu myší: + bgColor);driver.close ();}}
Výstup níže jasně uvádí, že barva pozadí se po přejetí myší stala průhlednou.
Vytváření série více akcí
Série akcí můžete vytvořit pomocí tříd Akce a Akce . Nezapomeňte zavřít sérii pomocí metody build (). Zvažte ukázkový kód níže.
public static void main (String [] args) {Řetězec baseUrl = "http://www.facebook.com/";Ovladač WebDriver = nový FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("e-mail"));Tvůrce akcí = nové Akce (ovladač);Action seriesOfActions = stavitel.moveToElement (txtUsername).click ().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "ahoj").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().stavět();seriesOfActions.perform ();}
souhrn
- Zpracování speciálních událostí klávesnice a myši se provádí pomocí API AdvancedUserInteractions.
- Často používané události klíčových slov a myší jsou doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.