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
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
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.