Action Class in Selenium
โก Smart oppsummering
Action Class in Selenium hรฅndterer avanserte tastatur- og musehendelser som svevebevegelse, dra-og-slipp, hรธyreklikk og tastekombinasjoner gjennom Advanced User Interactions API. Denne veiledningen forklarer Actions- og Action-klassene, nรธkkelmetodene og hvordan du kjeder flere interaksjoner til รฉn sekvens.

Action Class in Selenium
Action Class in Selenium er en innebygd funksjon for hรฅndtering av tastatur- og musehendelser. Den stรธtter operasjoner som flere klikk med Ctrl-tasten, dra-og-slipp og mye mer. Disse operasjonene utfรธres ved hjelp av Advanced User Interactions API i Selenium WebDriver.
Hรฅndtering av tastatur- og mushendelser
Hรฅndtering av spesielle tastatur- og musehendelser gjรธres ved hjelp av Advanced User Interactions API. Den inneholder handlinger og Handling klasser som trengs for รฅ utfรธre disse hendelsene. De vanligste tastatur- og musehendelsene som tilbys av Actions-klassen er listet opp nedenfor.
| Metode | Tekniske beskrivelser |
|---|---|
| clickAndHold() | Klikker (uten รฅ slippe) pรฅ gjeldende museplassering. |
| contextClick() | Utfรธrer et kontekstklikk (hรธyreklikk) pรฅ gjeldende museposisjon. |
| doubleClick() | Utfรธrer et dobbeltklikk pรฅ gjeldende museplassering. |
| dragAndDrop(kilde, mรฅl) | Klikk og hold inne pรฅ kildeelementet, flytter til mรฅlelementet og slipper deretter musen. Parametre: kilde (elementet du skal trykke pรฅ), mรฅl (elementet du skal slippe). |
| dragAndDropBy(kilde, x-offset, y-offset) | Klikk og hold inne pรฅ kildeelementet, flytter seg med en gitt forskyvning, og slipper deretter. Parametre: kilde, xOffset (horisontal), yOffset (vertikal). |
| keyDown(modifier_key) | Trykker pรฅ en spesialtast uten รฅ slippe den, slik at senere interaksjoner antar at den forblir nede. Parameter: en spesialtast (Keys.ALT, Keys.SHIFT eller Keys.CONTROL). |
| keyUp(modifikator_nรธkkel) | Slipper en spesialtast. Parameter: en spesialtast (Keys.ALT, Keys.SHIFT eller Keys.CONTROL). |
| moveByOffset(x-offset, y-offset) | Flytter musen fra sin nรฅvรฆrende posisjon (eller 0,0) med den gitte forskyvningen. En negativ x flyttes til venstre; en negativ y flyttes opp. |
| moveToElement(toElement) | Flytter musen til midten av elementet. Parameter: elementet som skal flyttes til. |
| utgivelse() | Slipper den nedtrykte venstre museknappen pรฅ gjeldende plassering. |
| sendKeys(onElement, charsequence) | Sender en serie tastetrykk til et element. Parametre: onElement (vanligvis et tekstfelt), charsequence (tastetrykkene som skal sendes). |
I det fรธlgende eksemplet bruker vi moveToElement() metode for รฅ holde musepekeren over en av Mercury Omvisninger i tabellrader.
Cellen vist ovenfor er en del av en element. Nรฅr den ikke holdes over, er fargen #FFC455 (oransje). Etter at du har holdt musepekeren over cellen, blir fargen gjennomsiktig og matcher bakgrunnen i den omkringliggende tabellen.
Trinn 1) Importer handlinger og Handling klasser.
Trinn 2) Instantier et nytt Actions-objekt.
Trinn 3) Instantier en handling ved hjelp av handlingsobjektet fra trinn 2.
Her bruker vi moveToElement() metode for รฅ holde musepekeren over ยซHjemยป-lenken. build() Metoden kalles alltid sist, slik at alle listede handlinger kompileres til ett enkelt trinn.
Trinn 4) Bruke perform() metode for รฅ utfรธre handlingsobjektet som ble designet i trinn 3.
Nedenfor er den fullstendige WebDriver-koden som sjekker bakgrunnsfargen til element fรธr og etter at musen holdes over.
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();
}
}
Resultatet nedenfor viser at bakgrunnsfargen ble gjennomsiktig etter at musepekeren ble holdt over den.
Bygge en serie med flere handlinger
Du kan bygge en serie med handlinger ved hjelp av klassene Handling og Handlinger. Husk รฅ avslutte serien med build() metode. Vurder eksempelkoden nedenfor.
public static void main(String[] args) {
String baseUrl = "https://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();
}





