Museklikk & Tastaturarrangement: Actionklasse i Selenium Webdriver

Innholdsfortegnelse:

Anonim

I denne veiledningen lærer vi håndtering av tastatur og musevent i Selenium Webdriver

Handlingsklasse i selen

Action Class in Selenium er en innebygd funksjon levert av selen for håndtering av tastatur- og musearrangementer. Den inkluderer forskjellige operasjoner, for eksempel flere hendelser ved å klikke på kontrolltasten, dra og slipp hendelser og mange flere. Disse operasjonene fra handlingsklassen utføres ved hjelp av APIet for avansert brukerinteraksjon i Selenium Webdriver.

Håndtering av tastatur- og musearrangementer

Håndtering av spesielle tastatur- og mushendelser gjøres ved hjelp av Advanced User Interactions API . Den inneholder handlingene og handlingsklassene som er nødvendige når du utfører disse hendelsene. Følgende er de mest brukte tastatur- og musearrangementene som tilbys av Handlingsklassen.

Metode Beskrivelse
clickAndHold () Klikk (uten å slippe) på gjeldende museplassering.
contextClick () Utfører et kontekst-klikk på gjeldende museplassering. (Høyreklikk mushandling)
Dobbeltklikk() Utfører et dobbeltklikk på gjeldende museplassering.
dragAndDrop (kilde, mål) Utfører klikk-og-hold på stedet for kildeelementet, flytter til plasseringen av målelementet og slipper deretter musen. Parametere: kildeelement å emulere-knappen ned på. Målelement for å flytte til og slippe musen ved.
dragAndDropBy (kilde, x-offset, y-offset) Utfører klikk-og-hold på stedet for kildeelementet, beveger seg ved en gitt forskyvning og slipper deretter musen. Parametere : kildeelement for å emulere knapp ned ved. XOffset- horisontal flytt offset. YOffset- vertikal flytt offset.
keyDown (modifier_key) Utfører et modifikasjonstrykk. Slipper ikke endringstasten - etterfølgende interaksjoner kan anta at den holdes nede. Parametere : modifier_key - hvilken som helst av modifikasjonstastene (Keys.ALT, Keys.SHIFT eller Keys.CONTROL)
keyUp (modifier _key) Utfører en nøkkelutgivelse. Parametere : modifier_key - hvilken som helst av modifikasjonstastene (Keys.ALT, Keys.SHIFT eller Keys.CONTROL)
moveByOffset (x-offset, y-offset) Flytter musen fra sin nåværende posisjon (eller 0,0) ved den angitte forskyvningen. Parametere : x-offset- horisontal offset. En negativ verdi betyr å flytte musen til venstre. Y-offset- vertikal offset. En negativ verdi betyr å flytte musen ned.
moveToElement (toElement) Flytter musen til midten av elementet. Parametere : toElement- element å flytte til.
utgivelse() Slipper den nedtrykte venstre museknappen på gjeldende museplassering
sendKeys (onElement, charsequence) Sender en serie tastetrykk på elementet. Parametere : onElement - element som vil motta tastetrykkene, vanligvis en tekstfeltfølg - hvilken som helst strengverdi som representerer sekvensen av tastetrykk som skal sendes

I det følgende eksemplet skal vi bruke metoden moveToElement () til å musemarkere på en Mercury Tours 'tabellrader. Se eksemplet nedenfor.

Cellen vist ovenfor er en del av et -element. Hvis den ikke er svevet, er fargen # FFC455 (oransje). Etter svevingen blir cellefargen gjennomsiktig. Det blir samme farge som den blå bakgrunnen på hele det oransje bordet.

Trinn 1: Importer handlingen og handlingen .

Trinn 2: Instanter et nytt Handlingsobjekt.

Trinn 3: Instantiate a Action ved hjelp av Actions-objektet i trinn 2.

I dette tilfellet skal vi bruke moveToElement () -metoden fordi vi ganske enkelt skal holde musen over "Hjem" -linken. Metoden build () er alltid den endelige metoden som brukes, slik at alle de oppførte handlingene blir samlet i ett trinn.

Trinn 4: Bruk utfør () -metoden når du utfører handlingsobjektet vi designet i trinn 3.

Nedenfor er hele WebDriver-koden for å sjekke bakgrunnsfargen til -elementet før og etter musemarkeringen.

pakke newproject;importer org.openqa.selenium. *;importer org.openqa.selenium.firefox.FirefoxDriver;importer org.openqa.selenium.interactions.Action;importer org.openqa.selenium.interactions.Action;offentlig klasse PG7 {public static void main (String [] args) {Streng baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");WebDriver-driver = ny FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Hjem"));WebElement td_Home = driver.findElement (av.xpath ("// html / body / div"+ "/ tabell / tbody / tr / td"+ "/ tabell / tbody / tr / td"+ "/ tabell / tbody / tr / td"+ "/ tabell / tbody / tr"));Handlingsbygger = nye handlinger (driver);Handling mouseOverHome = byggmester.moveToElement (link_Home).bygge();Streng bgColor = td_Home.getCssValue ("bakgrunnsfarge");System.out.println ("Before hover: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("bakgrunnsfarge");System.out.println ("Etter hover: + bgColor);driver.close ();}}

Resultatet nedenfor sier tydelig at bakgrunnsfargen ble gjennomsiktig etter musemekanismen.

Bygg en serie med flere handlinger

Du kan lage en rekke handlinger ved hjelp av handlingen og handlingene . Bare husk å lukke serien med metoden build (). Vurder eksemplet nedenfor.

public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";WebDriver-driver = ny FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("e-post"));Handlingsbygger = nye handlinger (driver);HandlingsserieOfActions = byggmester.moveToElement (txtUsername).klikk ().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "hallo").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().bygge();seriesOfActions.perform ();}

Sammendrag

  • Håndtering av spesielle tastatur- og mushendelser gjøres ved hjelp av AdvancedUserInteractions API.
  • Ofte brukte søkeord- og musearrangementer er doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.