Toimintaluokka sisään Selenium
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 = "https://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.





