V tomto výučbe sa naučíme zaobchádzať s udalosťami klávesnice a myši v selenovom webovom ovládači
Akčná trieda v seléne
Action Class in Selenium je vstavaná funkcia poskytovaná selénom na spracovanie udalostí klávesnice a myši. Zahŕňa rôzne operácie, ako napríklad klikanie na viac udalostí ovládacím tlačidlom, udalosti typu drag and drop a mnoho ďalších. Tieto operácie z triedy akcií sa vykonávajú pomocou rozhrania API pre pokročilú interakciu používateľa v selenovom webovom ovládači.
Zaobchádzanie s udalosťami klávesnice a myši
Manipulácia so špeciálnymi udalosťami klávesnice a myši sa vykonáva pomocou API Advanced User Interactions API . Obsahuje akcie a triedy akcií, ktoré sú potrebné pri vykonávaní týchto udalostí. Nasledujú najbežnejšie používané udalosti klávesnice a myši poskytované triedou Actions.
Metóda | Popis |
---|---|
clickAndHold () | Kliknutia (bez uvoľnenia) na aktuálne miesto myši. |
contextClick () | Vykoná kontextové kliknutie na aktuálne umiestnenie myši. (Akcia pravým tlačidlom myši) |
dvojité kliknutie() | Vykoná dvojité kliknutie v aktuálnom umiestnení myši. |
dragAndDrop (zdroj, cieľ) | Vykoná kliknutie a podržanie v mieste zdrojového prvku, presunie sa na miesto cieľového prvku a potom uvoľní myš. Parametre: source- element to emulate button down at.target- element na presunutie a uvoľnenie myši na. |
dragAndDropBy (zdroj, offset x, posun y) | Vykoná kliknutie a podržanie v mieste zdrojového prvku, pohybuje sa o dané odsadenie a potom uvoľní myš. Parametre : zdroj - prvok, ktorý má emulovať tlačidlo nadol pri. XOffset - posun horizontálneho pohybu. YOffset - posun vertikálneho pohybu. |
keyDown (modifier_key) | Vykoná stlačenie modifikačnej klávesy. Neuvoľňuje klávesu modifikátora - následné interakcie môžu predpokladať, že je stále stlačená. Parametre : modifier_key - ktorýkoľvek z klávesov modifikátora (Keys.ALT, Keys.SHIFT alebo Keys.CONTROL) |
keyUp (modifikátor _key) | Vykoná uvoľnenie klávesu. Parametre : modifier_key - ktorýkoľvek z klávesov modifikátora (Keys.ALT, Keys.SHIFT alebo Keys.CONTROL) |
moveByOffset (x-offset, y-offset) | Presunie myš z jej aktuálnej polohy (alebo 0,0) o daný posun. Parametre : x-offset - horizontálny offset. Záporná hodnota znamená pohyb myši doľava. Y-offset- vertikálne posunutie. Záporná hodnota znamená pohyb myši nadol. |
moveToElement (toElement) | Presunie myš do stredu prvku. Parametre : toElement - prvok, do ktorého sa má presunúť. |
uvoľnenie () | Uvoľní stlačené ľavé tlačidlo myši na aktuálnom mieste myši |
sendKeys (onElement, charsequence) | Odošle sériu úderov na prvok. Parametre : onElement - prvok, ktorý bude prijímať stlačenia klávesov, zvyčajne textové pole - sekvencia - ľubovoľná hodnota reťazca predstavujúca postupnosť stlačených klávesov |
V nasledujúcom príklade použijeme metódu moveToElement () na presunutie kurzora myši na jeden riadok tabuľky Mercury Tours. Pozri príklad nižšie.
Bunka zobrazená vyššie je časťou prvku . Ak kurzor myši nestiahnete, jeho farba je # FFC455 (oranžová). Po vznášaní sa farba bunky stane priehľadnou. Stane sa rovnakou farbou ako modré pozadie celého oranžového stola.
Krok 1: Importujte akcie a triedy akcií .
Krok 2: Vytvorte inštanciu nového objektu Actions.
Krok 3: Vytvorte inštanciu akcie pomocou objektu Actions v kroku 2.
V takom prípade použijeme metódu moveToElement (), pretože jednoducho prejdeme kurzorom myši na odkaz „Domov“. Metóda build () je vždy posledná použitá metóda, takže všetky uvedené akcie budú skompilované do jedného kroku.
Krok 4: Pri vykonávaní objektu Action, ktorý sme navrhli v kroku 3, použite metódu perform ().
Ďalej je uvedený celý kód WebDriver na kontrolu farby pozadia prvku pred a po prejdení myšou.
balíček nový projekt;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;importovať org.openqa.selenium.interaction.Action;importovať org.openqa.selenium.interaction.Actions;verejná trieda PG7 {public static void main (String [] args) {Reťazec baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Ovládač WebDriver = nový FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Domov"));WebElement td_Home = ovládač.findElement (podľa.xpath ("// html / body / div"+ "/ stôl / telo / tr / td"+ "/ stôl / telo / tr / td"+ "/ stôl / telo / tr / td"+ "/ stôl / telo / tr"));Tvorca akcií = nové akcie (ovládač);Akcia mouseOverHome = staviteľ.moveToElement (link_Home).build ();Reťazec bgColor = td_Home.getCssValue ("farba pozadia");System.out.println ("Pred umiestnením kurzora myši: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("farba pozadia");System.out.println ("Po umiestnení kurzora myši: + bgColor);driver.close ();}}
Výstup nižšie jasne uvádza, že farba pozadia sa po prejdení myšou stala priehľadnou.
Vytvorenie série viacerých akcií
Sériu akcií môžete vytvoriť pomocou tried Akcie a Akcie . Nezabudnite zavrieť sériu metódou build (). Zvážte ukážkový kód uvedený nižšie.
public static void main (String [] args) {Reťazec baseUrl = "http://www.facebook.com/";Ovládač WebDriver = nový FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("e-mail"));Tvorca akcií = nové akcie (ovládač);Action seriesOfActions = staviteľ.moveToElement (txtUsername). kliknúť ().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, „ahoj“).keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().build ();seriesOfActions.perform ();}
Zhrnutie
- Manipulácia so špeciálnymi udalosťami klávesnice a myši sa vykonáva pomocou API AdvancedUserInteractions.
- Často používané udalosti kľúčových slov a myší sú doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.