Classe d'action dans Selenium

Dans ce didacticiel, nous apprendrons à gérer les événements clavier et souris dans Selenium Pilote Web

Classe d'action dans Selenium

Classe d'action dans Selenium est une fonctionnalité intégrée fournie par le sélénium pour gérer les événements du clavier et de la souris. Elle comprend diverses opérations telles que plusieurs événements en cliquant avec la touche de contrôle, des événements de glisser-déposer et bien d'autres. Ces opérations de la classe action sont effectuées à l'aide de l'API d'interaction utilisateur avancée dans 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 l'outil API d'interactions utilisateur avancées. Il contient le Action et la Action classes nécessaires à l’exécution de ces événements. Voici les événements de clavier et de souris les plus couramment utilisés fournis par la classe Actions.

Méthode Description
cliquezEtMaintenez() Clics (sans relâcher) à l'emplacement actuel de la souris.
contexteClic() Effectue un clic contextuel à l’emplacement actuel de la souris. (Action de clic droit de la souris)
doubleClic() Effectue un double-clic à l'emplacement actuel de la souris.
dragAndDrop (source, cible) Effectue un clic prolongé à l'emplacement de l'élément source, se déplace vers l'emplacement de l'élément cible, puis relâche la souris.

Paramètres:

élément source sur lequel émuler le bouton.

élément cible vers lequel se déplacer et relâcher la souris.

dragAndDropBy (source, décalage x, décalage y) Effectue un clic et maintient le doigt sur l'emplacement de l'élément source, se déplace d'un décalage donné, puis relâche la souris.

Paramètres:

élément source sur lequel émuler le bouton.

xOffset- décalage de déplacement horizontal.

yOffset- décalage de déplacement vertical.

keyDown(modifier_key) Effectue une pression sur une touche de modification. Ne relâche pas la touche de modification : les interactions ultérieures peuvent supposer qu'elle est maintenue enfoncée.

Paramètres:

modifier_key – l'une des touches de modification (Keys.ALT, Keys.SHIFT ou Keys.CONTROL)

keyUp(modificateur _key) Effectue une libération de clé.

Paramètres:

modifier_key – l'une des touches de modification (Keys.ALT, Keys.SHIFT ou Keys.CONTROL)

moveByOffset (décalage x, décalage y) Déplace la souris de sa position actuelle (ou 0,0) du décalage donné.

Paramètres:

x-offset- décalage horizontal. Une valeur négative signifie déplacer la souris vers la gauche.

y-offset- décalage vertical. Une valeur négative signifie déplacer la souris vers le bas.

moveToElement(versElement) Déplace la souris au milieu de l'élément.

Paramètres:

toElement- élément vers lequel se déplacer.

Libération() Relâche le bouton gauche de la souris enfoncé à l'emplacement actuel de la souris
sendKeys (onElement, séquence de caractères) Envoie une série de frappes sur l'élément.

Paramètres:

onElement – ​​élément qui recevra les frappes au clavier, généralement un champ de texte

charsequence – toute valeur de chaîne représentant la séquence de frappes à envoyer

Dans l'exemple suivant, nous utiliserons la méthode moveToElement() pour survoler un élément avec la souris. Mercury Rangées de table de Tours. Voir l'exemple ci-dessous.

Gestion des événements clavier et souris

La cellule illustrée ci-dessus est une partie d'un élément. S'il n'est pas survolé, sa couleur est #FFC455 (orange). Après le survol, la couleur de la cellule devient transparente. Il devient de la même couleur que le fond bleu de l'ensemble du tableau orange.

Étape 1) Importer le Action et Action classes.

Gestion des événements clavier et souris

Étape 2) Instanciez un nouvel objet Actions.

Gestion des événements clavier et souris

Étape 3) Instanciez une action à l’aide de l’objet Actions à l’étape 2.

Gestion des événements clavier et souris

Dans ce cas, nous allons utiliser la méthode moveToElement() car nous allons simplement passer la souris sur le lien « Accueil ». La méthode build() est toujours la méthode finale utilisée afin que toutes les actions répertoriées soient compilées en une seule étape.

Étape 4) Utilisez la méthode perform() lors de l'exécution de l'objet Action que nous avons conçu à l'étape 3.

Gestion des événements clavier et souris

Vous trouverez ci-dessous l'intégralité du code WebDriver pour vérifier la couleur d'arrière-plan du é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 indique clairement que la couleur d'arrière-plan est devenue transparente après le survol de la souris.

Classe d'action dans Selenium

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 fermer la série avec la méthode build(). Considérez l'exemple de code ci-dessous.

Construire une série d’actions multiples

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() ;

}

Construire une série d’actions multiples

Résumé

  • La gestion des événements spéciaux de clavier et de souris s'effectue à l'aide de l'API AdvancedUserInteractions.
  • Les événements de mots-clés et de souris fréquemment utilisés sont doubleClick(), keyUp, dragAndDropBy, contextClick et sendKeys.

Résumez cet article avec :