Klik miške & Dogodki na tipkovnici: Razred akcije v programu Selenium Webdriver

Kazalo:

Anonim

V tej vadnici se bomo naučili ravnanja s tipkovnico in miško v programu Selenium Webdriver

Razred akcije v selenu

Action Class in Selenium je vgrajena funkcija, ki jo nudi selen za obdelavo dogodkov na tipkovnici in miški. Vključuje različne operacije, kot so večkratni dogodki s klikom na nadzorno tipko, povleci in spusti dogodki in še veliko več. Te operacije iz razreda dejanj se izvajajo z uporabo naprednega API-ja za interakcijo z uporabniki v programu Selenium Webdriver.

Upravljanje dogodkov s tipkovnico in miško

Obravnava posebnih dogodkov na tipkovnici in miški poteka z uporabo API-ja za napredne uporabniške interakcije . Vsebuje Dejanja in akcijskih razrede, ki so potrebne pri izvajanju te dogodke. Sledijo najpogosteje uporabljeni dogodki na tipkovnici in miški, ki jih ponuja razred Dejanja.

Metoda Opis
clickAndHold () Kliki (brez sprostitve) na trenutni lokaciji miške.
contextClick () Izvede kontekstni klik na trenutni lokaciji miške. (Z desno miškino tipko kliknite miško)
dvojni klik() Izvede dvoklik na trenutni lokaciji miške.
dragAndDrop (vir, cilj) Izvede klik in zadrži na mestu izvornega elementa, premakne se na lokacijo ciljnega elementa in sprosti miško. Parametri: izvorni element za posnemanje gumba navzdol pri. Ciljni element za premikanje in spuščanje miške.
dragAndDropBy (vir, x-offset, y-offset) Izvede klik in zadrži na mestu izvornega elementa, premakne se za določen odmik in nato sprosti miško. Parametri : vir- element za posnemanje gumba navzdol pri.xOffset- pomik vodoravnega premika.yOffset- pomik navpičnega premika.
keyDown (modifier_key) Izvede modifikacijski pritisk tipke. Ne sprosti modifikacijske tipke - pri nadaljnjih interakcijah se lahko domneva, da je pritisnjena. Parametri : modifier_key - katera koli modifikacijska tipka (Keys.ALT, Keys.SHIFT ali Keys.CONTROL)
keyUp (modifikator _key) Izvede sprostitev tipke. Parametri : modifier_key - katera koli modifikacijska tipka (Keys.ALT, Keys.SHIFT ali Keys.CONTROL)
moveByOffset (x-offset, y-offset) Premakne miško iz trenutnega položaja (ali 0,0) za dani odmik. Parametri : x-offset - vodoravni odmik. Negativna vrednost pomeni premikanje miške levo. Y-offset - navpični odmik. Negativna vrednost pomeni premikanje miške navzdol.
moveToElement (toElement) Premakne miško na sredino elementa. Parametri : toElement- element, na katerega se premaknete.
sprostitev () Sprosti pritisnjen levi gumb miške na trenutni lokaciji miške
sendKeys (onElement, charsequence) Pošlje vrsto pritiskov tipk na element. Parametri : onElement - element, ki bo prejel pritiske tipk, ponavadi besedilno polje zaporedje - katera koli vrednost niza, ki predstavlja zaporedje pritiskov tipk, ki jih je treba poslati

V naslednjem primeru bomo uporabili metodo moveToElement () za premikanje miške v vrsticah tabele Mercury Tours. Glej spodnji primer.

Zgornja celica je del elementa . Če ni lebdeča, je njena barva # FFC455 (oranžna). Po lebdenju barva celice postane prozorna. Postane enake barve kot modro ozadje celotne oranžne mize.

Korak 1: Uvoz na Dejanja in akcijski razredi.

2. korak: Instancirajte nov predmet Dejanja.

3. korak: Instancirajte dejanje z uporabo predmeta Action v 2. koraku.

V tem primeru bomo uporabili metodo moveToElement (), ker bomo preprosto premaknili miško preko povezave "Domov". Metoda build () je vedno končna uporabljena metoda, tako da bodo vsa navedena dejanja zbrana v en sam korak.

4. korak: Pri izvajanju predmeta Action, ki smo ga zasnovali v 3. koraku, uporabite metodo perform ().

Spodaj je celotna koda WebDriver za preverjanje barve ozadja elementa pred in po prehodu miške.

paket newproject;uvoz org.openqa.selenium. *;uvoz org.openqa.selenium.firefox.FirefoxDriver;uvoz org.openqa.selenium.interactions.Action;uvoz org.openqa.selenium.interactions.Actions;javni razred PG7 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Gonilnik WebDriver = novi FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Domov"));WebElement td_Home = gonilnik.findElement (avtor.xpath ("// html / body / div"+ "/ tabela / tbody / tr / td"+ "/ tabela / tbody / tr / td"+ "/ tabela / tbody / tr / td"+ "/ table / tbody / tr"));Graditelj dejanj = nova dejanja (gonilnik);Dejanje mouseOverHome = graditelj.moveToElement (link_Home).build ();Niz bgColor = td_Home.getCssValue ("barva ozadja");System.out.println ("Pred hover: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("barva ozadja");System.out.println ("Po hover: + bgColor);driver.close ();}}

Spodnji izhod jasno navaja, da je barva ozadja postala prosojna po nanosu miške.

Ustvarjanje vrste več akcij

Z razredi Action in Actions lahko ustvarite vrsto akcij . Ne pozabite zapreti serije z metodo build (). Upoštevajte spodnjo vzorčno kodo.

public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";Gonilnik WebDriver = novi FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("email"));Graditelj dejanj = nova dejanja (gonilnik);Action seriesOfActions = graditelj.moveToElement (txtUsername).click ().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "hello").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().build ();seriesOfActions.perform ();}

Povzetek

  • Obravnava posebnih dogodkov na tipkovnici in miški poteka prek API-ja AdvancedUserInteractions.
  • Pogosto uporabljeni dogodki za ključne besede in miške so doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.