Klik mišem & Događaj na tipkovnici: Akcija u programu Selenium Webdriver

Sadržaj:

Anonim

U ovom uputstvu naučit ćemo rukovanje događajima tipkovnice i miša u programu Selenium Webdriver

Akcija u selenu

Action Class u selenu ugrađena je značajka koju pruža selen za rukovanje događajima na tipkovnici i mišu. Uključuje razne operacije kao što su klikanje višestrukih događaja pomoću kontrolne tipke, povlačenje i ispuštanje događaja i još mnogo toga. Ove se radnje iz klase radnji izvode pomoću naprednog API-ja za interakciju s korisnikom u programu Selenium Webdriver.

Rukovanje događajima s tipkovnicom i mišem

Rukovanje posebnim događajima na tipkovnici i mišu vrši se pomoću API-ja za napredne korisničke interakcije . Sadrži radnje i klase radnje potrebne za izvršavanje tih događaja. Slijede najčešće korišteni događaji tipkovnice i miša koje pruža klasa Akcije.

Metoda Opis
clickAndHold () Klikovi (bez puštanja) na trenutnom mjestu miša.
contextClick () Izvodi kontekstni klik na trenutnom mjestu miša. (Desni klik miša)
dvostruki klik() Izvodi dvoklik na trenutnom mjestu miša.
dragAndDrop (izvor, cilj) Izvodi klik i držanje na mjestu izvornog elementa, pomiče se na mjesto ciljnog elementa, a zatim otpušta miš. Parametri: izvorni element za oponašanje gumba dolje na. Ciljni element za pomicanje i otpuštanje miša.
dragAndDropBy (izvor, pomak x, pomak y) Izvodi klik i držanje na mjestu izvornog elementa, pomiče se za zadani pomak, a zatim otpušta miš. Parametri : izvor- element za oponašanje gumba prema dolje na.xOffset- pomak horizontalnog pomicanja.yOffset- pomak vertikalnog pomicanja.
keyDown (modifikator_ključa) Izvodi modifikacijsko pritiskanje tipke. Ne otpušta modifikacijsku tipku - naknadne interakcije mogu pretpostaviti da je pritisnuta. Parametri : modifier_key - bilo koja od tipki modifikatora (Keys.ALT, Keys.SHIFT ili Keys.CONTROL)
keyUp (modifikator _key) Izvodi otpuštanje ključa. Parametri : modifier_key - bilo koja od tipki modifikatora (Keys.ALT, Keys.SHIFT ili Keys.CONTROL)
moveByOffset (x-offset, y-offset) Pomiče miš s trenutnog položaja (ili 0,0) za zadani pomak. Parametri : x-offset - vodoravni pomak. Negativna vrijednost znači pomicanje miša ulijevo.y-offset- vertikalni pomak. Negativna vrijednost znači pomicanje miša prema dolje.
moveToElement (toElement) Premješta miša u sredinu elementa. Parametri : toElement- element na koji se treba premjestiti.
otpustiti () Otpušta pritisnutu lijevu tipku miša na trenutnom mjestu miša
sendKeys (onElement, charsequence) Šalje niz tipki na element. Parametri : onElement - element koji će primiti pritiske tipki, obično slijed polja tekstualnog polja - bilo koja vrijednost niza koja predstavlja slijed tipki koje treba poslati

U sljedećem ćemo primjeru koristiti metodu moveToElement () za prelazak mišem preko jednog retka tablice Mercury Toursa. Pogledajte primjer u nastavku.

Gore prikazana ćelija dio je elementa . Ako se ne zadrži, boja je # FFC455 (narančasta). Nakon lebdenja, boja stanice postaje prozirna. Postaje iste boje kao i plava pozadina cijelog narančastog stola.

Korak 1: Uvezite klase Akcije i Akcije .

Korak 2: Instancirajte novi objekt Akcije.

Korak 3: Instancirajte radnju pomoću objekta Action u koraku 2.

U ovom ćemo slučaju koristiti metodu moveToElement () jer ćemo jednostavno prijeći mišem preko veze "Početna". Metoda build () uvijek je završna metoda koja se koristi, tako da će se sve navedene radnje sastaviti u jedan korak.

4. korak: Koristite metodu perform () prilikom izvršavanja objekta Action koji smo osmislili u 3. koraku.

Ispod je cijeli WebDriver kôd za provjeru boje pozadine elementa prije i poslije prelaska mišem.

paket noviprojekt;uvoz org.openqa.selenium. *;uvoz org.openqa.selenium.firefox.FirefoxDriver;uvoz org.openqa.selenium.interactions.Action;uvoz org.openqa.selenium.interactions.Actions;javna klasa PG7 {javna statička void glavna (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Upravljački program za WebDriver = novi FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Početna"));WebElement td_Home = pokretački program.nađiElement (Autor.xpath ("// html / body / div"+ "/ tablica / tjelo / tr / td"+ "/ tablica / tjelo / tr / td"+ "/ tablica / tjelo / tr / td"+ "/ table / tbody / tr"));Graditelj radnji = nove radnje (pokretački program);Akcija mouseOverHome = graditelj.moveToElement (link_Home).izgraditi();Niz bgColor = td_Home.getCssValue ("boja pozadine");System.out.println ("Prije prelaska kursorom: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("boja pozadine");System.out.println ("Nakon prelaska mišem: + bgColor);driver.close ();}}

Izlaz u nastavku jasno kaže da je boja pozadine postala prozirna nakon prelaska mišem.

Izgradnja niza višestrukih radnji

Možete izraditi niz akcija pomoću klasa Akcija i Akcije . Sjetite se samo zatvoriti niz metodom build (). Razmotrite uzorak koda u nastavku.

javna statička void glavna (String [] args) {String baseUrl = "http://www.facebook.com/";Upravljački program za WebDriver = novi FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("email"));Graditelj radnji = nove radnje (pokretački program);Action seriesOfActions = graditelj.moveToElement (txtUsername).klik().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "hello").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().izgraditi();seriesOfActions.perform ();}

Sažetak

  • Rukovanje posebnim događajima na tipkovnici i mišu vrši se pomoću API-ja AdvancedUserInteractions.
  • Često korišteni događaji ključnih riječi i miša su doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.