Classe d'action dans Selenium
โก Rรฉsumรฉ intelligent
Classe d'action dans Selenium Ce tutoriel explique comment gรฉrer les รฉvรฉnements avancรฉs du clavier et de la souris, tels que le survol, le glisser-dรฉposer, le clic droit et les combinaisons de touches, grรขce ร l'API d'interactions utilisateur avancรฉes. Il prรฉsente รฉgalement les classes Actions et Action, leurs principales mรฉthodes et la maniรจre d'enchaรฎner plusieurs interactions.

Classe d'action dans Selenium
Classe d'action dans Selenium est une fonctionnalitรฉ intรฉgrรฉe de gestion des รฉvรฉnements clavier et souris. Elle prend en charge des opรฉrations telles que les clics multiples avec la touche Ctrl, le glisser-dรฉposer, et bien d'autres. Ces opรฉrations sont rรฉalisรฉes ร l'aide de l'API Advanced User Interactions. Selenium Pilote Web.
Gestion des รฉvรฉnements clavier et souris
La gestion des รฉvรฉnements spรฉciaux du clavier et de la souris s'effectue ร l'aide de API d'interactions utilisateur avancรฉes. Il contient le Action et Action Les classes nรฉcessaires ร l'exรฉcution de ces รฉvรฉnements sont listรฉes ci-dessous. Les รฉvรฉnements clavier et souris les plus frรฉquemment utilisรฉs, fournis par la classe Actions, sont รฉgalement listรฉs ci-dessous.
| Mรฉthode | Description |
|---|---|
| cliquezEtMaintenez() | Clics (sans relรขcher) ร l'emplacement actuel de la souris. |
| contexteClic() | Effectue un clic contextuel (clic droit) ร l'emplacement actuel de la souris. |
| doubleClic() | Effectue un double-clic ร l'emplacement actuel de la souris. |
| dragAndDrop (source, cible) | Cliquez et maintenez le bouton de la souris enfoncรฉ sur l'รฉlรฉment source, dรฉplacez-le vers l'รฉlรฉment cible, puis relรขchez-le. Paramรจtres : source (รฉlรฉment sur lequel cliquer), cible (รฉlรฉment oรน relรขcher le bouton). |
| dragAndDropBy (source, dรฉcalage x, dรฉcalage y) | Un clic maintenu sur l'รฉlรฉment source permet de le dรฉplacer d'un dรฉcalage donnรฉ, puis de relรขcher le bouton. Paramรจtres : source, xOffset (horizontal), yOffset (vertical). |
| keyDown(modifier_key) | Maintient une touche de modification enfoncรฉe sans la relรขcher, de sorte que les interactions suivantes supposent qu'elle reste enfoncรฉe. Paramรจtre : une touche de modification (Keys.ALT, Keys.SHIFT ou Keys.CONTROL). |
| toucheUp(touche_modificatrice) | Relรขche une touche de modification. Paramรจtre : une touche de modification (Keys.ALT, Keys.SHIFT ou Keys.CONTROL). |
| moveByOffset (dรฉcalage x, dรฉcalage y) | Dรฉplace la souris par rapport ร sa position actuelle (ou 0,0) de la valeur indiquรฉe. Une valeur nรฉgative de x dรฉplace la souris vers la gauche ; une valeur nรฉgative de y la dรฉplace vers le haut. |
| moveToElement(versElement) | Dรฉplace le curseur au centre de l'รฉlรฉment. Paramรจtre : l'รฉlรฉment cible. |
| Libรฉration() | Relรขche le bouton gauche de la souris enfoncรฉ ร l'emplacement actuel. |
| sendKeys (onElement, sรฉquence de caractรจres) | Envoie une sรฉrie de frappes au clavier ร un รฉlรฉment. Paramรจtres : onElement (gรฉnรฉralement un champ texte), charsequence (les frappes au clavier ร envoyer). |
Dans l'exemple suivant, nous utilisons le moveToElement() mรฉthode pour survoler l'un des Mercury Lignes du tableau des visites.
La cellule illustrรฉe ci-dessus fait partie d'un L'รฉlรฉment est de couleur orange (#FFC455) lorsqu'il n'est pas survolรฉ. Au survol, sa couleur devient transparente et se fond dans le fond du tableau.
รtape 1) Importer le Action et Action classes.
รtape 2) Instanciez un nouvel objet Actions.
รtape 3) Instanciez une action ร l'aide de l'objet Actions de l'รฉtape 2.
Ici, nous utilisons le moveToElement() mรฉthode pour survoler le lien ยซ Accueil ยป. build() Cette mรฉthode est toujours appelรฉe en dernier afin que toutes les actions listรฉes soient compilรฉes en une seule รฉtape.
รtape 4) Utilisez le bouton perform() mรฉthode pour exรฉcuter l'objet Action conรงu ร l'รฉtape 3.
Ci-dessous se trouve le code WebDriver complet qui vรฉrifie la couleur d'arriรจre-plan de รฉlรฉment avant et aprรจs le survol de la souris.
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();
}
}
Le rรฉsultat ci-dessous montre que la couleur de fond est devenue transparente aprรจs le survol de la souris.
Construire une sรฉrie dโactions multiples
Vous pouvez crรฉer une sรฉrie d'actions ร l'aide des classes Action et Actions. N'oubliez pas de terminer la sรฉrie avec le build() mรฉthode. Considรฉrez l'exemple de code ci-dessous.
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();
}





