Roboterklasse in Selenium Webdriver

Inhaltsverzeichnis:

Anonim

Roboterklasse

Die Roboterklasse in Selen wird verwendet, um automatisierte Tests für Implementierungen der Java-Plattform zu ermöglichen. Es generiert Eingabeereignisse in nativen Systemen für Testautomatisierung, selbstlaufende Demos und andere Anwendungen, bei denen Benutzer die Kontrolle über Maus und Tastatur benötigen. Die Roboterklasse ist einfach zu implementieren und kann problemlos in ein automatisiertes Framework integriert werden.

Warum Roboterklasse?

Die Roboterklasse wird in Selenium verwendet, da Benutzer in bestimmten Selenium-Automatisierungstests die Kontrolle über Tastatur oder Maus benötigen, um mit Betriebssystemfenstern wie Download-Popups, Druck-Popups usw. und nativen Anwendungen wie Notizblock, Taschenrechner usw. zu interagieren. Selenium Webdriver kann diese Popups / Anwendungen nicht verarbeiten. Daher wurde in Java Version 1.3 eine Roboterklasse eingeführt, die Betriebssystem-Popups / -Anwendungen verarbeiten kann.

In diesem Tutorial lernen Sie:

  • Vorteile der Roboterklasse
  • Dokumentation der Roboterklasse
  • Grundlegendes zu internen Methoden und Verwendung der Roboterklasse
  • Ausführen des Roboterklassencodes mit testNG
  • Nachteile der Roboterklasse

Vorteile der Roboterklasse

  1. Die Roboterklasse kann Tastatur- und Mausereignisse simulieren
  2. Robot Class kann beim Hoch- und Herunterladen von Dateien bei Verwendung des Selenium-Webtreibers hilfreich sein
  3. Die Roboterklasse kann problemlos in das aktuelle Automatisierungsframework (Schlüsselwort, datengesteuert oder Hybrid) integriert werden.

Was ist Roboterklassendokumentation?

Die Dokumentation zur Roboterklasse in Selenium hilft Benutzern, die grundlegende Definition, Syntax und Verwendung aller Methoden und Funktionen zu verstehen, die in der Roboterklasse im Java AWT-Paket verfügbar sind. Benutzer können die Dokumentation auf der offiziellen Oracle-Website anzeigen. Benutzer können die Dokumentation auch selbst auf ihrem lokalen Computer erstellen.

Führen Sie die folgenden Schritte aus, um die Dokumentation auf dem lokalen Computer zu erstellen:

Schritt 1) Sie finden die Datei src.zip im JDK-Ordner. Kopieren Sie src.zip und extrahieren Sie dasselbe in einen anderen Ordner oder ein anderes Verzeichnis (z. B. D: oder E :).

Schritt 2) Extrahieren Sie den Ordner src und navigieren Sie zu (Pfad bis zum Ordner src) / src / java / awt

Schritt 3) Kopieren Sie den aktuellen Speicherort des awt-Ordners und öffnen Sie die Eingabeaufforderung.

Schritt 4) Ändern Sie in cmd Ihren aktuellen Verzeichnisspeicherort in den Ordner awt und geben Sie 'javadoc * .java' ein, wie unten gezeigt

Warten Sie eine Weile, bis das System verarbeitet ist. Nach Abschluss des Vorgangs werden nur wenige HTML-Dateien im Ordner awt angezeigt.

Schritt 5) Öffnen Sie index.html

Schritt 6) Hier haben Sie die vollständige Dokumentation des awt-Pakets. Klicken Sie in der linken Navigationsleiste auf den Hyperlink 'Roboter' (siehe 1 im Bild unten).

Hier sehen Sie auch alle Methoden und Schnittstellen der Roboterklasse (siehe 2 im obigen Bild).

Grundlegendes zu internen Methoden und Verwendung der Roboterklasse

Roboterklassenmethoden können verwendet werden, um mit Tastatur- / Mausereignissen während der Browserautomatisierung zu interagieren. Alternativ kann AutoIT verwendet werden. Der Nachteil besteht jedoch darin, dass eine ausführbare Datei (exe) generiert wird, die nur unter Windows funktioniert. Daher ist dies keine gute Option.

Einige häufig verwendete Methoden der Roboterklasse während der Webautomatisierung:

  • keyPress (): Beispiel: robot.keyPress (KeyEvent.VK_DOWN): Diese Methode mit gedrückter Pfeiltaste auf der Tastatur
  • mousePress (): Beispiel : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Diese Methode drückt mit der rechten Maustaste.
  • mouseMove (): Beispiel : robot.mouseMove (point.getX (), point.getY ()): Hiermit wird der Mauszeiger auf die angegebenen X- und Y-Koordinaten verschoben.
  • keyRelease (): Beispiel: robot.keyRelease (KeyEvent.VK_DOWN): Diese Methode mit der Abwärtspfeiltaste der Tastatur
  • mouseRelease (): Beispiel: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Diese Methode gibt den rechten Mausklick frei

Beispielcode zur Automatisierung gängiger Anwendungsfälle mithilfe der Roboterklasse

  • Nehmen wir ein Beispiel für die Website http://spreadsheetpage.com/index.php/file/C35/P10/, auf der Sie nach dem Klicken auf ein Webelement ( .//a[@href=contains(text(),'yearly- calendar.xls '] ) Ein Popup-Fenster zum Herunterladen des Betriebssystems wird angezeigt.
  • Um dies zu handhaben, verwenden wir die Robot-Klasse (indem Sie in Ihrem Code eine Instanz der Robot-Klasse erstellen, z. B. Robot robot = new Robot () ). Roboterklasse uns im AWT-Paket von JDK vorhanden.
  • Zum Drücken der Pfeiltaste der Tastatur verwenden wir ( robot.keyPress (KeyEvent.VK_DOWN))
  • Zum Drücken der TAB-Taste der Tastatur (wir verwenden robot.keyPress (KeyEvent.VK_TAB))
  • Um die Eingabetaste zu drücken, verwenden wir ( robot.keyPress (KeyEvent.VK_ENTER)).

Hier ist ein Beispielcode

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;Klasse Übung1 {public static void main (String [] args) löst AWTException, InterruptedException {ausWebDriver-Treiber = neuer FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // Beispiel-URLdriver.findElement (By.xpath (".// a [@ href = enthält (text (), 'yearly-calendar.xls')]"). click ();Roboter Roboter = neuer Roboter (); // Roboterklasse löst AWT-Ausnahme ausThread.sleep (2000); // Thread.sleep löst InterruptedException ausrobot.keyPress (KeyEvent.VK_DOWN); // Drücken Sie die Pfeiltaste auf der Tastatur, um zu navigieren und das Optionsfeld Speichern auszuwählenThread.sleep (2000); // sleep wurde nur verwendet, um jedes Ereignis separat zu präsentierenrobot.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);// Drücken Sie die Eingabetaste der Tastatur, um die oben ausgewählte Aktion auszuführen}}}} 

Überprüfen Sie dieses Video, um es in Aktion zu sehen

Ausführen des Roboterklassencodes mit TestNG

Da Sie jetzt die grundlegenden Methoden der Roboterklasse kennen, lassen Sie uns einige komplexere Methoden verstehen -

Angenommen , Sie nicht wollen , das verwenden Click - Methode für im Web - Elemente klicken.

In solchen Fällen können Sie die mouseMove-Methode der Robot-Klasse verwenden.

Schritt 1) ​​Die mouseMove-Methode verwendet x- und y-Koordinaten als Parameter wie robot.mouseMove (630, 420), wobei 630 die x-Achse und 420 die y-Achse angibt. Diese Methode bewegt Ihren Mauszeiger von der aktuellen Position zum genannten x- und y-Schnittpunkt.

Schritt 2) Als nächstes müssen wir die Maustaste drücken. Wir können die Methode mousePress wie robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) verwenden .

Schritt 3) Nach dem Drücken muss die Maus losgelassen werden. Wir können robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) verwenden, um den linken Mausklick freizugeben.

Ausführen von Code mit testNG:

Das Ausführen von Code mit Testng erfordert die Maven-Abhängigkeit von testNG oder der referenzierten Bibliothek der TestNG-JAR-Datei.

TestNG-Maven-Abhängigkeit:

 org.testng  testng  6.1.1  

Nach dem Hinzufügen von Maven-Abhängigkeit oder JAR-Datei. Sie müssen die Testanmerkung von testNG importieren. Wenn alles erledigt ist, klicken Sie einfach mit der rechten Maustaste auf den Programmcode und klicken Sie auf Ausführen als und dann auf TestNG

… Und Sie werden feststellen, dass der Code seine Ausführung mit der testNG-API startet.

Hier ist der 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;öffentliche Klasse Excersise1 {@Prüfungpublic static void execute () löst InterruptedException, AWTException {ausWebDriver-Treiber = neuer FirefoxDriver ();driver.manage (). window (). maxim ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // Beispiel-URLRoboter Roboter = neuer Roboter ();robot.mouseMove (630, 420); // Mauspunkt an eine bestimmte Stelle bewegenrobot.delay (1500); // Verzögerung besteht darin, den Code auf die genannten Millisekunden warten zu lassen, bevor der nächste Schritt ausgeführt wirdrobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // Linksklick drückenrobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // Linksklick loslassenrobot.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // Drücken Sie die Pfeiltaste der Tastatur, um das Optionsfeld Speichern auszuwählenThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// Drücken Sie die Eingabetaste der Tastatur, um die oben ausgewählte Aktion auszuführen}}}}

Überprüfen Sie dieses Video, um es in Aktion zu sehen

Nachteile der Roboterklasse

Roboterrahmen haben einige Nachteile, die unten erwähnt werden:

  1. Das Schlüsselwort- / Mausereignis funktioniert nur in der aktuellen Instanz von Window. Angenommen, ein Code führt ein Roboterklassenereignis aus, und während der Codeausführung ist der Benutzer zu einem anderen Bildschirm gewechselt, dann tritt auf diesem Bildschirm ein Schlüsselwort- / Mausereignis auf.
  2. Die meisten Methoden wie mouseMove hängen von der Bildschirmauflösung ab, sodass möglicherweise Code auf einem Computer auf einem anderen Computer nicht funktioniert.

Zusammenfassung

Die Roboterklasse im AWT-Paket wird verwendet, um Tastatur- / Mausereignisse für die Interaktion mit Betriebssystemfenstern und nativen Apps zu generieren.

Der Hauptzweck von Robot ist die Unterstützung von Selen-automatisierten Testprojekten, die auf einer Java-Plattform erstellt wurden

Dieser Artikel wurde von Ramandeep Singh verfasst, einem Testautomatisierungsingenieur bei einem führenden MNC.