Faceți clic pe mouse & Eveniment de la tastatură: Clasă de acțiune în Selenium Webdriver

Cuprins:

Anonim

În acest tutorial, vom învăța tratarea evenimentelor de la tastatură și mouse în Selenium Webdriver

Clasa de acțiune în seleniu

Clasa de acțiune în seleniu este o caracteristică încorporată furnizată de seleniu pentru gestionarea evenimentelor de la tastatură și mouse. Include diverse operații, cum ar fi mai multe evenimente făcând clic pe tasta de control, glisând și plasând evenimente și multe altele. Aceste operații din clasa de acțiune sunt efectuate folosind API-ul avansat de interacțiune cu utilizatorul în Selenium Webdriver.

Gestionarea evenimentelor de la tastatură și mouse

Gestionarea evenimentelor speciale de la tastatură și mouse se face folosind API-ul Advanced User Interactions . Acesta conține acțiunile și clasele de acțiuni necesare pentru executarea acestor evenimente. Următoarele sunt cele mai frecvent utilizate evenimente de la tastatură și mouse furnizate de clasa Actions.

Metodă Descriere
apasă si menține() Clicuri (fără eliberare) la locația curentă a mouse-ului.
contextClick () Efectuează un clic contextual la locația curentă a mouse-ului. (Faceți clic dreapta pe acțiunea mouse-ului)
dublu click() Efectuează un dublu clic la locația curentă a mouse-ului.
dragAndDrop (sursă, țintă) Efectuează clic și țineți apăsat la locația elementului sursă, se deplasează la locația elementului țintă, apoi eliberează mouse-ul. Parametri: element sursă pentru a emula butonul în jos la.target- element pentru a muta și elibera mouse-ul la.
dragAndDropBy (sursă, x-offset, y-offset) Efectuează click-and-hold la locația elementului sursă, se deplasează cu un offset dat, apoi eliberează mouse-ul. Parametri : sursă- element pentru a emula butonul în jos la.xOffset- deplasare orizontală offset.yOffset- deplasare verticală offset.
keyDown (modificator_key) Efectuează o apăsare a tastei modificatoare. Nu eliberează tasta modificatoare - interacțiunile ulterioare pot presupune că este menținută apăsată. Parametri : modifier_key - oricare dintre tastele modificatoare (Keys.ALT, Keys.SHIFT sau Keys.CONTROL)
keyUp (modificator _key) Efectuează o eliberare a cheii. Parametri : modifier_key - oricare dintre tastele modificatoare (Keys.ALT, Keys.SHIFT sau Keys.CONTROL)
moveByOffset (x-offset, y-offset) Mută ​​mouse-ul din poziția sa actuală (sau 0,0) cu decalajul dat. Parametri : x-offset- offset orizontal. O valoare negativă înseamnă deplasarea mouse-ului la stânga.y-offset-offset vertical. O valoare negativă înseamnă deplasarea mouse-ului în jos.
moveToElement (toElement) Mută ​​mouse-ul la mijlocul elementului. Parametri : toElement- element în care să vă mutați.
eliberare() Eliberează butonul stâng al mouse-ului apăsat în locația curentă a mouse-ului
sendKeys (onElement, charsequence) Trimite o serie de apăsări de taste pe element. Parametri : onElement - element care va primi apăsările de tastă, de obicei o secvență de câmp text - orice valoare a șirului care reprezintă secvența de apăsări de taste care trebuie trimise

În exemplul următor, vom folosi metoda moveToElement () pentru a trece cu mouse-ul pe rândurile de tabel ale lui Mercury Tours. Vedeți exemplul de mai jos.

Celula prezentată mai sus este o porțiune a unui element . Dacă nu este planat, culoarea sa este # FFC455 (portocaliu). După planare, culoarea celulei devine transparentă. Devine aceeași culoare cu fundalul albastru al întregului tabel portocaliu.

Pasul 1: Importați acțiunile și clasele de acțiuni .

Pasul 2: Instantați un nou obiect Actions.

Pasul 3: Instanțiați o acțiune folosind obiectul Actions din pasul 2.

În acest caz, vom folosi metoda moveToElement () pentru că vom pur și simplu să trecem mouse-ul peste linkul „Acasă”. Metoda build () este întotdeauna metoda finală utilizată, astfel încât toate acțiunile listate vor fi compilate într-un singur pas.

Pasul 4: Utilizați metoda perform () când executați obiectul Action pe care l-am proiectat în Pasul 3.

Mai jos este întregul cod WebDriver pentru a verifica culoarea de fundal a elementului înainte și după trecerea mouse-ului.

pachet proiect nou;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Actions;clasa publica PG7 {public static main main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Driver WebDriver = nou FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Home"));WebElement td_Home = driver.findElement (By.xpath ("// html / body / div"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr"));Generator de acțiuni = Acțiuni noi (driver);Acțiune mouseOverHome = constructor.moveToElement (link_Home).construi();Șir bgColor = td_Home.getCssValue ("fundal-culoare");System.out.println ("Înainte de a plasa: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("fundal-culoare");System.out.println ("După plimbare: + bgColor);driver.close ();}}

Ieșirea de mai jos arată clar că culoarea de fundal a devenit transparentă după trecerea mouse-ului.

Construirea unei serii de acțiuni multiple

Puteți construi o serie de acțiuni utilizând clasele Acțiune și Acțiuni . Nu uitați să închideți seria cu metoda build (). Luați în considerare exemplul de cod de mai jos.

public static main main (String [] args) {String baseUrl = "http://www.facebook.com/";Driver WebDriver = nou FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("e-mail"));Generator de acțiuni = Acțiuni noi (driver);Action seriesOfActions = constructor.moveToElement (txtUsername).clic().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "salut").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().construi();seriesOfActions.perform ();}

rezumat

  • Gestionarea evenimentelor speciale de la tastatură și mouse se face folosind API-ul AdvancedUserInteractions.
  • Evenimentele de cuvinte cheie și mouse utilizate frecvent sunt doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.