Classe de robots dans Selenium Pilote Web
Qu'est-ce que la classe de robot Selenium?
Classe de robots in Selenium est utilisé pour permettre des tests automatisés pour les implémentations de Java plate-forme. Il génère des événements d'entrée dans les systèmes natifs pour l'automatisation des tests, les démos auto-exécutables et d'autres applications où les utilisateurs ont besoin de contrôler la souris et le clavier. La classe Robot est facile à mettre en œuvre et peut être facilement intégrée à un framework automatisé.
Pourquoi la classe Robot ?
Classe de robots est utilisé dans Selenium parce que, dans certains Selenium tests d'automatisation, les utilisateurs ont besoin de contrôler le clavier ou la souris pour interagir avec les fenêtres du système d'exploitation comme les fenêtres contextuelles de téléchargement, les fenêtres contextuelles d'impression, etc. et les applications natives comme le bloc-notes, la calculatrice, etc. Selenium Webdriver ne peut pas gérer ces pop-ups/applications, donc dans Java Dans la version 1.3, une classe de robots a été introduite et peut gérer les pop-ups/applications du système d'exploitation.
Documentation sur les classes de robots
Votre Documentation sur les classes de robots in Selenium aide les utilisateurs à comprendre la définition de base, la syntaxe et l'utilisation de toutes les méthodes et fonctions disponibles dans la classe robot dans Java Forfait AWT. Les utilisateurs peuvent consulter la documentation sur le Oracle site de NDN Collective. Les utilisateurs peuvent également créer eux-mêmes la documentation sur leur ordinateur local.
Pour créer la documentation sur la machine locale, suivez les étapes ci-dessous :
Étape 1) Vous trouverez le fichier src.zip dans le dossier JDK. Copiez src.zip et extrayez-le dans un autre dossier ou répertoire (disons D: ou E: )
Étape 2) Extrayez le dossier src et accédez à (chemin jusqu'au dossier src)/src/java/awt
Étape 3) Copiez l'emplacement actuel du dossier awt et ouvrez l'invite de commande.
Étape 4) Dans cmd, changez l'emplacement de votre répertoire actuel en dossier awt et tapez « javadoc *.java » comme indiqué ci-dessous.
Attendez un moment que le système traite, une fois terminé, vous verrez quelques fichiers HTML dans le dossier awt.
Étape 5) Ouvrir index.html
Étape 6) Voici la documentation complète du package awt, dans la barre de navigation de gauche, cliquez sur le lien hypertexte « Robot » (voir 1 marqué dans l'image ci-dessous).
Ici, vous pouvez également voir toutes les méthodes et interfaces de Robot Class (voir 2 marqués dans l'image ci-dessus).
Méthodes de classe de robot dans Selenium et utilisation
Les méthodes de classe Robot peuvent être utilisées pour interagir avec les événements clavier/souris tout en automatisant le navigateur. Alternativement AutoIT peut être utilisé, mais son inconvénient est qu'il génère un fichier exécutable (exe) qui ne fonctionnera que sous Windows, ce n'est donc pas une bonne option à utiliser.
Certaines méthodes couramment utilisées de Robot Class lors de l’automatisation Web :
Méthode 1 : keyPress() :
robot.keyPress(KeyEvent.VK_DOWN) : Cette méthode en appuyant sur la touche fléchée vers le bas du clavier
Méthode 2 : mousePress() :
robot.mousePress(InputEvent.BUTTON3_DOWN_MASK) : Cette méthode appuiera sur le clic droit de votre souris.
Méthode 3 : mouseMove() :
robot.mouseMove(point.getX(), point.getY()) : cela déplacera le pointeur de la souris vers les coordonnées X et Y spécifiées.
Méthode 4 : keyRelease() :
robot.keyRelease(KeyEvent.VK_DOWN) : Cette méthode avec la touche fléchée vers le bas du clavier
Méthode 5 : mouseRelease() :
robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK) : Cette méthode libérera le clic droit de votre souris
Exemple de code pour automatiser les cas d'utilisation courants à l'aide de Robot Class
- Prenons l'exemple du site Web http://spreadsheetpage.com/index.php/file/C35/P10/ dans lequel après avoir cliqué sur un élément Web (
.//a[@href=contains(text(),'yearly-calendar.xls']
), une fenêtre contextuelle de téléchargement du système d'exploitation apparaît.
- Pour gérer cela, nous utilisons la classe Robot (en créant une instance de Robot Class dans votre code, par exemple Robot robot = nouveau Robot()) . La classe Robot est présente dans le package AWT du JDK.
Touche du clavier | Method |
---|---|
Pour appuyer sur la touche fléchée vers le bas | nous utilisons (robot.keyPress(KeyEvent.VK_DOWN)) |
Pour appuyer sur la touche TAB | nous utilisons (robot.keyPress(KeyEvent.VK_TAB)) |
Pour appuyer sur la touche Entrée | nous utilisons (robot.keyPress(KeyEvent.VK_ENTER)) |
Exemple de classe de robot dans Selenium
import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; class Excercise1 { public static void main(String[] args) throws AWTException, InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url driver.findElement(By.xpath(".//a[@href=contains(text(),'yearly-calendar.xls')]")).click(); Robot robot = new Robot(); // Robot class throws AWT Exception Thread.sleep(2000); // Thread.sleep throws InterruptedException robot.keyPress(KeyEvent.VK_DOWN); // press arrow down key of keyboard to navigate and select Save radio button Thread.sleep(2000); // sleep has only been used to showcase each event separately robot.keyPress(KeyEvent.VK_TAB); Thread.sleep(2000); robot.keyPress(KeyEvent.VK_TAB); Thread.sleep(2000); robot.keyPress(KeyEvent.VK_TAB); Thread.sleep(2000); robot.keyPress(KeyEvent.VK_ENTER); // press enter key of keyboard to perform above selected action } }
Regardez cette vidéo pour le voir en action
Comment exécuter le code de la classe Robot en utilisant TestNG
Puisque vous connaissez maintenant les méthodes de base de Robot Class, comprenons donc quelques méthodes plus complexes –
Supposons que vous ne vouliez pas utiliser le méthode de clic pour cliquer sur un élément Web.
Dans de tels cas, vous pouvez utiliser la méthode mouseMove de la classe Robot.
Étape 1) La méthode mouseMove prend les coordonnées x et y comme paramètres comme robot.mouseMove(630, 420) où 630 indique l'axe des x et 420 indique l'axe des y. Ainsi, cette méthode déplacera le pointeur de votre souris de l’emplacement actuel vers le point d’intersection x et y mentionné.
Étape 2) Ensuite, nous devons appuyer sur le bouton de la souris. Nous pouvons utiliser la méthode sourisPresse comme robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) .
Étape 3) Après avoir appuyé, la souris doit être relâchée. On peut utiliser robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK) afin de relâcher le clic gauche d'une souris.
Exécuter du code à l'aide de testNG :
Exécuter du code en utilisant Tester nécessite une dépendance Maven de testNG ou une bibliothèque référencée de TestNG fichier jar.
TestNG dépendance maven :
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.1.1</version> </dependency>
Après avoir ajouté la dépendance Maven ou le fichier jar. Vous devez importer l'annotation de test de testNG. Une fois que tout est fait, faites un clic droit sur le code du programme et cliquez sur Exécuter en tant que, puis cliquez sur TestNG… et vous constaterez que le code démarrera son exécution à l’aide de l’API testNG.
Voici le code
import java.awt.AWTException; import java.awt.Robot; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; public class Excersise1 { @Test public static void execution() throws InterruptedException, AWTException { WebDriver driver = new FirefoxDriver(); driver.manage().window().maximize(); driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url Robot robot = new Robot(); robot.mouseMove(630, 420); // move mouse point to specific location robot.delay(1500); // delay is to make code wait for mentioned milliseconds before executing next step robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); // press left click robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); // release left click robot.delay(1500); robot.keyPress(KeyEvent.VK_DOWN); // press keyboard arrow key to select Save radio button Thread.sleep(2000); robot.keyPress(KeyEvent.VK_ENTER); // press enter key of keyboard to perform above selected action } }
Regardez cette vidéo pour le voir en action
Avantages de la classe robot
- La classe Robot peut simuler un événement clavier et souris
- Robot Class peut aider au téléchargement/téléchargement de fichiers lors de l'utilisation du pilote Web Selenium
- Robot Class peut facilement être intégré au cadre d'automatisation actuel (mot clé, basé sur les données ou hybride)
Inconvénients de la classe robot
Le framework robot présente quelques inconvénients mentionnés ci-dessous :
- L'événement mot-clé/souris ne fonctionnera que sur l'instance actuelle de Window. Par exemple, supposons qu'un code exécute un événement de classe de robot et que pendant l'exécution du code, l'utilisateur s'est déplacé vers un autre écran, un événement mot-clé/souris se produira sur cet écran.
- La plupart des méthodes telles que mouseMove dépendent de la résolution de l'écran, il est donc possible que le code fonctionnant sur une machine ne fonctionne pas sur une autre.
Résumé
La classe Robot du package AWT est utilisée pour générer des événements clavier/souris pour interagir avec les fenêtres du système d'exploitation et les applications natives.
L'objectif principal de Robot est de prendre en charge le projet de tests automatisés Selenium intégré Java plateforme