Dans ce didacticiel, nous allons apprendre à gérer les événements de clavier et de souris dans Selenium Webdriver
Classe d'action en sélénium
La 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. Il comprend diverses opérations telles que plusieurs événements en cliquant sur une touche de contrôle, des événements de glisser-déposer et bien d'autres. Ces opérations de la classe d'action sont effectuées à l'aide de l'API d'interaction utilisateur avancée dans Selenium Webdriver.
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' API Advanced User Interactions . Il contient les actions et les classes d' action 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 |
---|---|
clickAndHold () | Clics (sans relâcher) à l'emplacement actuel de la souris. |
contextCliquez () | Effectue un clic contextuel à l'emplacement actuel de la souris. (Action de clic droit de la souris) |
doubleCliquez () | Effectue un double-clic à l'emplacement actuel de la souris. |
dragAndDrop (source, cible) | Effectue un clic et maintien à 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 à émuler bouton enfoncé at.target- élément vers lequel se déplacer et relâcher la souris. |
dragAndDropBy (source, décalage x, décalage y) | Effectue un clic et un maintien à l'emplacement de l'élément source, se déplace d'un décalage donné, puis relâche la souris. Paramètres : source- élément à émuler bouton vers le bas at.xOffset- décalage de déplacement horizontal.yOffset- décalage de déplacement vertical. |
keyDown (modifier_key) | Effectue une pression sur la touche de modification. Ne relâche pas la touche de modification - les interactions suivantes 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 (modifier _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 : décalage x-décalage horizontal. Une valeur négative signifie déplacer la souris vers la gauche.y-offset-vertical offset. Une valeur négative signifie déplacer la souris vers le bas. |
moveToElement (toElement) | 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, généralement un champ de texte séquence de caractères - toute valeur de chaîne représentant la séquence de frappes à envoyer |
Dans l'exemple suivant, nous utiliserons la méthode moveToElement () pour passer la souris sur les lignes d'une table de Mercury Tours. Voir l'exemple ci-dessous.
La cellule illustrée ci-dessus est une partie d'un élément
Étape 1: importez les actions et les classes d' action .
Étape 2: instanciez un nouvel objet Actions.
Étape 3: instanciez une action à l'aide de l'objet Actions à l'étape 2.
Dans ce cas, nous allons utiliser la méthode moveToElement () car nous allons simplement passer la souris sur le lien "Home". La méthode build () est toujours la dernière méthode utilisée pour 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.
Vous trouverez ci-dessous l'intégralité du code WebDriver pour vérifier la couleur d'arrière-plan de l'élément
package newproject;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Actions;classe publique PG7 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Pilote WebDriver = nouveau FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Accueil"));WebElement td_Home = pilote.findElement (Par.xpath ("// html / corps / div"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr"));Générateur d'actions = nouvelles actions (pilote);Action mouseOverHome = constructeur.moveToElement (link_Home).construire();String bgColor = td_Home.getCssValue ("background-color");System.out.println ("Avant le survol: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("couleur d'arrière-plan");System.out.println ("Après le survol: + bgColor);driver.close ();}}
La sortie ci-dessous indique clairement que la couleur d'arrière-plan est devenue transparente après le passage 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 fermer la série avec la méthode build (). Considérez l'exemple de code ci-dessous.
public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";Pilote WebDriver = nouveau FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("email"));Générateur d'actions = nouvelles actions (pilote);Action seriesOfActions = constructeur.moveToElement (txtUsername).Cliquez sur().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "bonjour").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().construire();seriesOfActions.perform ();}
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.