Toimintaluokka sisään Selenium – Hiiren napsautus ja näppäimistötapahtumat
Tässä opetusohjelmassa opimme käsittelemään näppäimistön ja hiiren tapahtumia Selenium Web-ohjain
Toimintaluokka sisään Selenium
Toimintaluokka sisään Selenium on seleenin tarjoama sisäänrakennettu ominaisuus näppäimistön ja hiiren tapahtumien käsittelyyn. Se sisältää erilaisia toimintoja, kuten useita tapahtumia, jotka napsautetaan ohjausnäppäimellä, vedä ja pudota -tapahtumat ja paljon muuta. Nämä toimintoluokan toiminnot suoritetaan käyttämällä edistyneen käyttäjän vuorovaikutuksen sovellusliittymää Selenium Web-ajuri.
Näppäimistö- ja hiiritapahtumien käsittely
Erikoisnäppäimistön ja hiiren tapahtumien käsittely tapahtuu käyttämällä Advanced User Interactions API. Se sisältää Toiminnot ja Toiminta luokat, joita tarvitaan näiden tapahtumien suorittamisessa. Seuraavat ovat yleisimmin käytetyt Actions-luokan tarjoamat näppäimistö- ja hiiritapahtumat.
Menetelmä | Tuotetiedot |
---|---|
clickAndHold() | Napsautukset (vapauttamatta) hiiren nykyisessä sijainnissa. |
kontekstiClick() | Suorittaa kontekstinapsautuksen hiiren nykyisessä sijainnissa. (Klikkaa hiiren oikealla painikkeella) |
doubleClick() | Suorittaa kaksoisnapsautuksen hiiren nykyisessä paikassa. |
vedäAndDrop(lähde, kohde) | Suorittaa napsauttamalla ja pitämällä lähdeelementin sijainnissa, siirtyy kohdeelementin sijaintiin ja vapauttaa sitten hiiren.
parametrit: lähde-elementti, jolla emuloidaan painike alas. kohde-elementti, johon siirryt ja josta hiiren vapautat. |
dragAndDropBy(lähde, x-offset, y-offset) | Suorittaa napsauttamalla ja pitämällä lähdeelementin sijainnissa, liikkuu tietyn siirtymän verran ja vapauttaa sitten hiiren.
parametrit: lähde-elementti, jolla emuloidaan painike alas. xOffset- vaakasuora siirtopoikkeama. yOffset- pystysuuntainen siirtopoikkeama. |
keyDown(muokkausavain) | Suorittaa muokkausnäppäimen painalluksen. Ei vapauta muokkausnäppäintä – myöhemmät vuorovaikutukset voivat olettaa, että sitä pidetään painettuna.
parametrit: modifier_key – mikä tahansa muokkausnäppäin (Keys.ALT, Keys.SHIFT tai Keys.CONTROL) |
keyUp(muokkaus _avain) | Suorittaa avaimen vapautuksen.
parametrit: modifier_key – mikä tahansa muokkausnäppäin (Keys.ALT, Keys.SHIFT tai Keys.CONTROL) |
moveByOffset(x-offset, y-offset) | Siirtää hiirtä sen nykyisestä paikasta (tai 0,0) annetun siirtymän verran.
parametrit: x-offset- vaakasuuntainen siirtymä. Negatiivinen arvo tarkoittaa hiiren siirtämistä vasemmalle. y-offset- pystypoikkeama. Negatiivinen arvo tarkoittaa hiiren liikuttamista alaspäin. |
siirrä elementtiin (elementtiin) | Siirtää hiiren elementin keskelle.
parametrit: toElement- elementti, johon siirretään. |
vapauttaa () | Vapauttaa painetun hiiren vasemman painikkeen hiiren nykyisessä sijainnissa |
sendKeys(onElement, merkkisekvenssi) | Lähettää sarjan näppäinpainalluksia elementtiin.
parametrit: onElement – elementti, joka vastaanottaa näppäinpainallukset, yleensä tekstikenttä charsequence – mikä tahansa merkkijonoarvo, joka edustaa lähetettävien näppäinpainallusten sarjaa |
Seuraavassa esimerkissä käytämme metodia moveToElement() viemään hiiren osoitin yhden päälle Mercury Toursin pöytärivit. Katso alla oleva esimerkki.
Yllä esitetty solu on osa a elementti. Jos sitä ei näytetä, sen väri on #FFC455 (oranssi). Osoituksen jälkeen solun väri muuttuu läpinäkyväksi. Siitä tulee samanvärinen kuin koko oranssin pöydän sininen tausta.
Vaihe 1) Tuo Toiminnot ja Toiminta luokat.
Vaihe 2) Luo uusi Actions-objekti.
Vaihe 3) Toteuta toiminto Actions-objektin avulla vaiheessa 2.
Tässä tapauksessa aiomme käyttää moveToElement() -menetelmää, koska viemme hiiren yksinkertaisesti "Home" -linkin päälle. Build()-menetelmä on aina viimeinen käytetty menetelmä, jotta kaikki luetellut toiminnot kootaan yhteen vaiheeseen.
Vaihe 4) Käytä perform()-menetelmää, kun suoritat vaiheessa 3 suunnittelemamme Action-objektin.
Alla on koko WebDriver-koodi, jolla voit tarkistaa taustavärin elementti ennen ja jälkeen hiiren osoitinta.
package newproject; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Action; import org.openqa.selenium.interactions.Actions; public class PG7 { public static void main(String[] args) { String baseUrl = "http://demo.guru99.com/test/newtours/"; System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); WebDriver driver = new 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")); Actions builder = new Actions(driver); Action mouseOverHome = builder .moveToElement(link_Home) .build(); String bgColor = td_Home.getCssValue("background-color"); System.out.println("Before hover: " + bgColor); mouseOverHome.perform(); bgColor = td_Home.getCssValue("background-color"); System.out.println("After hover: " + bgColor); driver.close(); } }
Alla olevassa tulosteessa todetaan selvästi, että taustaväri muuttui läpinäkyväksi hiiren viemisen jälkeen.
Useiden toimien sarjan rakentaminen
Voit rakentaa sarjan toimintoja käyttämällä Action- ja Actions-luokkia. Muista vain sulkea sarja build()-menetelmällä. Harkitse alla olevaa esimerkkikoodia.
public static void main(String[] args) { String baseUrl = "http://www.facebook.com/"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement txtUsername = driver.findElement(By.id("email")); Actions builder = new Actions(driver); Action seriesOfActions = builder .moveToElement(txtUsername) .click() .keyDown(txtUsername, Keys.SHIFT) .sendKeys(txtUsername, "hello") .keyUp(txtUsername, Keys.SHIFT) .doubleClick(txtUsername) .contextClick() .build(); seriesOfActions.perform() ; }
Yhteenveto
- Erikoisnäppäimistö- ja hiiritapahtumien käsittely tapahtuu AdvancedUserInteractions API:n avulla.
- Usein käytetyt avainsana- ja hiiritapahtumat ovat doubleClick(), keyUp, dragAndDropBy, contextClick & sendKeys.