Musklick & Tangentbordshändelse: Actionklass i Selen Webdriver

Innehållsförteckning:

Anonim

I den här handledningen lär vi oss hantera tangentbord och mushändelse i Selenium Webdriver

Actionklass i selen

Action Class in Selenium är en inbyggd funktion som tillhandahålls av selen för hantering av tangentbord och mushändelser. Den innehåller olika operationer som flera händelser genom att klicka med kontrollknappen, dra och släpp händelser och många fler. Dessa åtgärder från åtgärdsklassen utförs med API för avancerad användarinteraktion i Selenium Webdriver.

Hantering av tangentbord och mushändelser

Hantering av speciella tangentbords- och mushändelser görs med Advanced User Interactions API . Den innehåller de åtgärder och de åtgärdsklasser som behövs när dessa händelser utförs. Följande är de vanligaste tangentbords- och mushändelserna som tillhandahålls av Actions-klassen.

Metod Beskrivning
Klicka och håll() Klick (utan att släppas) vid den aktuella musplatsen.
contextClick () Utför ett snabbklick på den aktuella musplatsen. (Högerklick musåtgärd)
dubbelklicka() Utför ett dubbelklick på den aktuella musplatsen.
dragAndDrop (källa, mål) Utför klicka och håll kvar på källelementet, flyttar till platsen för målelementet och släpper sedan musen. Parametrar: källelement för att emulera-knappen ner vid.target-element för att flytta till och släpp musen vid.
dragAndDropBy (källa, x-offset, y-offset) Utför klicka och håll kvar på källelementet, flyttar med en viss förskjutning och släpper sedan musen. Parametrar : källelement för att emulera knappen ned vid.xOffset- horisontell flytt offset. YOffset- vertikal flytt offset.
keyDown (modifier_key) Utför en modifieringstangenttryckning. Släpper inte modifierarknappen - efterföljande interaktioner kan anta att den hålls intryckt. Parametrar : modifier_key - någon av modifieringsnycklarna (Keys.ALT, Keys.SHIFT eller Keys.CONTROL)
keyUp (modifierare _key) Utför en nyckelfrigöring. Parametrar : modifier_key - någon av modifieringsnycklarna (Keys.ALT, Keys.SHIFT eller Keys.CONTROL)
moveByOffset (x-offset, y-offset) Flyttar musen från sin nuvarande position (eller 0,0) med den angivna förskjutningen. Parametrar : x-offset- horisontal offset. Ett negativt värde betyder att du flyttar musen åt vänster. Y-offset- vertikal offset. Ett negativt värde betyder att du flyttar ner musen.
moveToElement (toElement) Flyttar musen till mitten av elementet. Parametrar : toElement- element att flytta till.
släpp() Släpper nedtryckt vänster musknapp vid den aktuella musplatsen
sendKeys (onElement, charsequence) Skickar en serie tangenttryckningar på elementet. Parametrar : onElement - element som kommer att få tangenttryckningarna, vanligtvis en textfältföljd - vilket strängvärde som representerar sekvensen för tangenttryckningar som ska skickas

I följande exempel ska vi använda metoden moveToElement () för att muspeka på en Mercury Tours tabellrader. Se exemplet nedan.

Cellen som visas ovan är en del av ett -element. Om den inte svävs är färgen # FFC455 (orange). Efter att ha svävat blir cellens färg transparent. Det blir samma färg som den blå bakgrunden på hela det orange bordet.

Steg 1: Importera klasserna Åtgärder och Åtgärder .

Steg 2: Instantiera ett nytt Actions-objekt.

Steg 3: Instantiera en åtgärd med hjälp av objektet Actions i steg 2.

I det här fallet kommer vi att använda metoden moveToElement () eftersom vi helt enkelt går muspekaren över länken "Hem". Metoden build () är alltid den slutliga metoden som används så att alla listade åtgärder samlas i ett enda steg.

Steg 4: Använd metoden perform () när du kör det åtgärdsobjekt som vi utformade i steg 3.

Nedan visas hela WebDriver-koden för att kontrollera bakgrundsfärgen för -elementet före och efter muspekaren.

paketet newproject;importera org.openqa.selenium. *;importera org.openqa.selenium.firefox.FirefoxDriver;importera org.openqa.selenium.interactions.Action;importera org.openqa.selenium.interactions.Actions;allmän klass PG7 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");WebDriver-drivrutin = ny FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Hem"));WebElement td_Home = drivrutin.findElement (av.xpath ("// html / body / div"+ "/ tabell / tbody / tr / td"+ "/ tabell / tbody / tr / td"+ "/ tabell / tbody / tr / td"+ "/ tabell / tbody / tr"));Åtgärdsbyggare = nya åtgärder (drivrutin);Action mouseOverHome = byggare.moveToElement (länk_Hem).bygga();Sträng bgColor = td_Home.getCssValue ("bakgrundsfärg");System.out.println ("Before hover: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("bakgrundsfärg");System.out.println ("Efter svävar: + bgColor);driver.close ();}}

Utmatningen nedan anger tydligt att bakgrundsfärgen blev transparent efter muspekaren.

Bygga en serie med flera åtgärder

Du kan skapa en serie åtgärder med hjälp av klasserna Action och Actions . Kom bara ihåg att stänga serien med metoden build (). Tänk på exempelkoden nedan.

public static void main (String [] args) {SträngbasUrl = "http://www.facebook.com/";WebDriver-drivrutin = ny FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("e-post"));Åtgärdsbyggare = nya åtgärder (drivrutin);Action seriesOfActions = byggare.moveToElement (txtUsername).klick().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "hej").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().bygga();seriesOfActions.perform ();}

Sammanfattning

  • Hantering av speciella tangentbord och mushändelser görs med AdvancedUserInteractions API.
  • Ofta använda nyckelord och mushändelser är doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.