Museklik & Tastaturbegivenhed: Actionklasse i Selenium Webdriver

Indholdsfortegnelse:

Anonim

I denne vejledning lærer vi håndtering af tastatur og musevent i Selenium Webdriver

Handlingsklasse i selen

Action Class in Selenium er en indbygget funktion leveret af selen til håndtering af tastatur- og musebegivenheder. Det inkluderer forskellige handlinger såsom flere begivenheder ved at klikke på kontroltasten, trække og slippe begivenheder og mange flere. Disse handlinger fra handlingsklassen udføres ved hjælp af avanceret brugerinteraktions-API i Selenium Webdriver.

Håndtering af tastatur- og musebegivenheder

Håndtering af specielle tastatur- og musebegivenheder udføres ved hjælp af Advanced User Interactions API . Den indeholder de handlinger og handlingsklasser , der er nødvendige, når disse begivenheder udføres. Følgende er de mest anvendte tastatur- og musebegivenheder, der leveres af Handlingsklassen.

Metode Beskrivelse
clickAndHold () Klik (uden frigivelse) på den aktuelle museplacering.
contextClick () Udfører et kontekst-klik på den aktuelle museplacering. (Højreklik på musen)
Dobbeltklik() Udfører et dobbeltklik på den aktuelle museplacering.
dragAndDrop (kilde, mål) Udfører klik og hold på kildeelementets placering, flytter til placeringen af ​​målelementet og frigiver derefter musen. Parametre: kildeelement, der skal emuleres, ned ved.target- element, der skal flyttes til og frigør musen ved.
dragAndDropBy (kilde, x-offset, y-offset) Udfører klik og hold på kildeelementets placering, bevæger sig ved en given forskydning og frigør derefter musen. Parametre : kildeelement, der skal emuleres, ned ved.xOffset- vandret bevægelse forskydning. YOffset- lodret bevægelse forskydning.
keyDown (modifier_key) Udfører et tryk på en ændringstast. Slipper ikke ændringstasten - efterfølgende interaktioner antager muligvis, at den holdes nede. Parametre : modifier_key - en hvilken som helst af modifikationstasterne (Keys.ALT, Keys.SHIFT eller Keys.CONTROL)
keyUp (modifikator _key) Udfører en nøgleudgivelse. Parametre : modifier_key - en hvilken som helst af modifikationstasterne (Keys.ALT, Keys.SHIFT eller Keys.CONTROL)
moveByOffset (x-offset, y-offset) Flytter musen fra sin aktuelle position (eller 0,0) ved den givne forskydning. Parametre : x-offset- vandret offset. En negativ værdi betyder at flytte musen til venstre. Y-offset- lodret offset. En negativ værdi betyder at flytte musen ned.
moveToElement (toElement) Flytter musen til midten af ​​elementet. Parametre : toElement- element at flytte til.
frigøre() Frigør den nedtrykte venstre museknap ved den aktuelle museplacering
sendKeys (onElement, charsequence) Sender en række tastetryk på elementet. Parametre : onElement - element, der modtager tastetryk, normalt en tekstfeltfølg - enhver strengværdi, der repræsenterer rækkefølgen af ​​tastetryk, der skal sendes

I det følgende eksempel skal vi bruge metoden moveToElement () til at holde musemarkøren over en Mercury Tours 'tabelrækker. Se eksemplet nedenfor.

Cellen vist ovenfor er en del af et -element. Hvis den ikke holdes over, er farven # FFC455 (orange). Efter svævningen bliver cellens farve gennemsigtig. Det bliver den samme farve som den blå baggrund på hele det orange bord.

Trin 1: Importer klasserne Handlinger og Handling .

Trin 2: Instantier et nyt handlingsobjekt.

Trin 3: Instantier en handling ved hjælp af handlingsobjektet i trin 2.

I dette tilfælde skal vi bruge metoden moveToElement (), fordi vi simpelthen skal musen over linket "Hjem". Metoden build () er altid den endelige metode, der bruges, så alle de anførte handlinger bliver samlet i et enkelt trin.

Trin 4: Brug udfør () -metoden, når du udfører det handlingsobjekt, vi designet i trin 3.

Nedenfor er hele WebDriver-koden for at kontrollere baggrundsfarven på -elementet før og efter musen.

pakke nyprojekt;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;import 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 (Af.xpath ("// html / body / div"+ "/ tabel / tbody / tr / td"+ "/ tabel / tbody / tr / td"+ "/ tabel / tbody / tr / td"+ "/ tabel / tbody / tr"));Handlingsbygger = ny handling (driver);Handling mouseOverHome = bygherre.moveToElement (link_Home).build ();Streng bgColor = td_Home.getCssValue ("baggrundsfarve");System.out.println ("Før svæver: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("baggrundsfarve");System.out.println ("Efter svæver: + bgColor);driver.close ();}}

Outputtet nedenfor angiver tydeligt, at baggrundsfarven blev gennemsigtig efter musen.

Opbygning af en række flere handlinger

Du kan oprette en række handlinger ved hjælp af klasserne Handling og Handlinger . Husk bare at lukke serien med build () -metoden. Overvej eksempelkoden nedenfor.

public static void main (String [] args) {Streng baseUrl = "http://www.facebook.com/";WebDriver-driver = ny FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("e-mail"));Handlingsbygger = ny handling (driver);HandlingsserieOfAktioner = builder.moveToElement (txtUsername).klik ().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "hej").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().build ();seriesOfActions.perform ();}

Resumé

  • Håndtering af specielle tastatur- og musebegivenheder udføres ved hjælp af AdvancedUserInteractions API.
  • Ofte anvendte søgeords- og musebegivenheder er doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.