Action Class in Selenium
โก Smart sammanfattning
Action Class in Selenium hanterar avancerade tangentbords- och mushรคndelser som muspekning, dra-och-slรคpp, hรถgerklick och tangentkombinationer via Advanced User Interactions API. Den hรคr handledningen fรถrklarar klasserna Actions och Action, nyckelmetoderna och hur man lรคnkar flera interaktioner till en sekvens.

Action Class in Selenium
Action Class in Selenium รคr en inbyggd funktion fรถr att hantera tangentbords- och mushรคndelser. Den stรถder รฅtgรคrder som flera klick med Ctrl-tangenten, dra-och-slรคpp och mycket mer. Dessa รฅtgรคrder utfรถrs med hjรคlp av Advanced User Interactions API i Selenium WebDriver.
Hantera evenemang med tangentbord och mus
Hantering av speciella tangentbords- och mushรคndelser gรถrs med hjรคlp av Advanced User Interactions API. Den innehรฅller Actions och Handling klasser som behรถvs fรถr att kรถra dessa hรคndelser. De vanligaste tangentbords- och mushรคndelserna som tillhandahรฅlls av Actions-klassen listas nedan.
| Metod | BESKRIVNING |
|---|---|
| Klicka och hรฅll() | Klickar (utan att slรคppa) pรฅ den aktuella musplatsen. |
| contextClick() | Utfรถr ett kontextklick (hรถgerklick) pรฅ den aktuella muspositionen. |
| doubleClick() | Utfรถr ett dubbelklick pรฅ den aktuella musplatsen. |
| dragAndDrop(kรคlla, mรฅl) | Klickar och hรฅller kvar pรฅ kรคllelementet, flyttar till mรฅlelementet och slรคpper sedan musen. Parametrar: kรคlla (element att trycka pรฅ), mรฅl (element att slรคppa). |
| dragAndDropBy(kรคlla, x-offset, y-offset) | Klickar och hรฅller kvar pรฅ kรคllelementet, flyttar med en given fรถrskjutning och slรคpper sedan. Parametrar: kรคlla, xOffset (horisontell), yOffset (vertikal). |
| keyDown(modifier_key) | Trycker ner en modifieringstangent utan att slรคppa den, sรฅ senare interaktioner fรถrutsรคtter att den fรถrblir nedtryckt. Parameter: en modifieringstangent (Keys.ALT, Keys.SHIFT eller Keys.CONTROL). |
| keyUp(modifieringsnyckel) | Slรคpper en specialtangent. Parameter: en specialtangent (Keys.ALT, Keys.SHIFT eller Keys.CONTROL). |
| moveByOffset(x-offset, y-offset) | Flyttar musen frรฅn dess nuvarande position (eller 0,0) med den givna fรถrskjutningen. Ett negativt x flyttas รฅt vรคnster; ett negativt y flyttas uppรฅt. |
| moveToElement(toElement) | Flyttar musen till mitten av elementet. Parameter: elementet som ska flyttas till. |
| slรคpp() | Slรคpper den nedtryckta vรคnstra musknappen pรฅ den aktuella platsen. |
| sendKeys(onElement, charsequence) | Skickar en serie tangenttryckningar till ett element. Parametrar: onElement (vanligtvis ett textfรคlt), charsequence (tangenttryckningarna som ska skickas). |
I fรถljande exempel anvรคnder vi moveToElement() metod fรถr att hรฅlla muspekaren รถver en av Mercury Rundvisningar i tabellrader.
Cellen som visas ovan รคr en del av en element. Nรคr hovraren inte hรฅlls รถver cellen รคr dess fรคrg #FFC455 (orange). Efter att hovraren hรฅllits รถver den blir cellens fรคrg transparent och matchar bakgrunden i den omgivande tabellen.
Steg 1) Importera Actions och Handling klasser.
Steg 2) Instantiera ett nytt Actions-objekt.
Steg 3) Instansiera en รฅtgรคrd med hjรคlp av Actions-objektet frรฅn steg 2.
Hรคr anvรคnder vi moveToElement() metod fรถr att hรฅlla muspekaren รถver lรคnken "Hem". build() Metoden anropas alltid sist sรฅ att alla listade รฅtgรคrder kompileras till ett enda steg.
Steg 4) Anvรคnd perform() metod fรถr att exekvera Action-objektet som designades i steg 3.
Nedan finns den fullstรคndiga WebDriver-koden som kontrollerar bakgrundsfรคrgen pรฅ element fรถre och efter muspekaren.
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();
}
}
Utdata nedan visar att bakgrundsfรคrgen blev transparent efter att muspekaren fรถrdes รถver den.
Bygga en serie av flera รฅtgรคrder
Du kan bygga en serie รฅtgรคrder med hjรคlp av klasserna ร
tgรคrd och ร
tgรคrder. Kom ihรฅg att avsluta serien med build() metod. Betrakta exempelkoden nedan.
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();
}





