Roboterklasse in Selenium Webtreiber

Was ist die Roboterklasse? Selenium?

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

Warum Roboterklasse?

Roboterklasse wird in verwendet Selenium weil, mit Sicherheit Selenium Bei Automatisierungstests benötigen Benutzer Kontrolle über Tastatur oder Maus, 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 Java In Version 1.3 wurde eine Roboterklasse eingeführt, die Betriebssystem-Popups/Anwendungen verarbeiten kann.

Dokumentation der Roboterklasse

Der Dokumentation der Roboterklasse in Selenium hilft Benutzern, die grundlegende Definition, Syntax und Verwendung aller in der Roboterklasse verfügbaren Methoden und Funktionen zu verstehen in Java AWT-Paket. Benutzer können die Dokumentation auf der Offizieller Oracle Website . Benutzer können die Dokumentation auch selbst auf ihrem lokalen Computer erstellen.

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

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

Dokumentation der Roboterklasse

Schritt 2) Extrahieren Sie den SRC-Ordner und navigieren Sie zu (Pfad zum SRC-Ordner)./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

Dokumentation der Roboterklasse

Warten Sie eine Weile, bis das System die Verarbeitung abgeschlossen hat. Sobald der Vorgang abgeschlossen ist, werden Sie einige HTML-Dateien im Ordner „awt“ sehen.

Schritt 5) Öffnen Sie index.html

Dokumentation der Roboterklasse

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

Dokumentation der Roboterklasse

Hier können Sie auch alle Methoden und Schnittstellen der Robot-Klasse sehen (siehe 2 im Bild oben markiert).

Roboterklassenmethoden in Selenium und Verwendung

Methoden der Roboterklasse können verwendet werden, um bei der Browserautomatisierung mit Tastatur-/Mausereignissen zu interagieren. Alternative AutoIT kann verwendet werden, hat aber den Nachteil, dass es eine ausführbare Datei (exe) generiert, die nur unter Windows funktioniert und daher keine gute Option ist.

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

Methode 1: keyPress():

robot.keyPress(KeyEvent.VK_DOWN): Bei dieser Methode wird die Abwärtspfeiltaste der Tastatur gedrückt

Methode 2: mousePress():

robot.mousePress(InputEvent.BUTTON3_DOWN_MASK): Diese Methode drückt den rechten Mausklick.

Methode 3: mouseMove():

robot.mouseMove(point.getX(), point.getY()): Dadurch wird der Mauszeiger zu den angegebenen X- und Y-Koordinaten bewegt.

Methode 4: keyRelease():

robot.keyRelease(KeyEvent.VK_DOWN): Diese Methode mit Loslassen der Abwärtspfeiltaste der Tastatur

Methode 5: mouseRelease():

robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK): Diese Methode gibt den Rechtsklick Ihrer Maus frei

Beispielcode zur Automatisierung gängiger Anwendungsfälle mithilfe der Robot-Klasse

  • Nehmen wir als Beispiel 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']) erscheint ein Popup-Fenster zum Herunterladen des Betriebssystems.
  • Um dies zu handhaben, verwenden wir die Robot-Klasse (indem wir beispielsweise eine Instanz der Robot-Klasse in Ihrem Code erstellen). Roboter robot = neuer Roboter()). Die Roboterklasse ist im AWT-Paket von JDK vorhanden.
Tastaturtaste Methodik
Drücken Sie die Pfeiltaste nach unten Wir verwenden (robot.keyPress(KeyEvent.VK_DOWN))
Drücken Sie die TAB-Taste Wir verwenden (robot.keyPress(KeyEvent.VK_TAB))
Drücken Sie die Eingabetaste Wir verwenden (robot.keyPress(KeyEvent.VK_ENTER))

Beispiel einer Roboterklasse in 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	
     }	 
 }

Schauen Sie sich dieses Video an, um es in Aktion zu sehen

So führen Sie Roboterklassencode mit aus TestNG

Da Sie nun die grundlegenden Methoden der Robot-Klasse kennen, wollen wir uns einige komplexere Methoden ansehen –

Angenommen, Sie möchten das nicht verwenden Klick-Methode zum Klicken auf das Webelement.

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

Schritt 1) Die Methode „mouseMove“ verwendet x- und y-Koordinaten als Parameter robot.mouseMove(630, 420) wobei 630 die x-Achse und 420 die y-Achse angibt. Diese Methode bewegt Ihren Mauszeiger also 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 verwenden MausDrücken Google Trends, Amazons Bestseller robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) .

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

Ausführen von Code mit testNG:

Ausführen von Code mit Testng erfordert Maven-Abhängigkeit von testNG oder referenzierte Bibliothek von TestNG jar-Datei.

TestNG Maven-Abhängigkeit:

<dependency>	
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>	
  <version>6.1.1</version>	
</dependency>

Nach dem Hinzufügen der Maven-Abhängigkeit oder der JAR-Datei müssen Sie die Testannotation von testNG importieren. Wenn alles erledigt ist, klicken Sie einfach mit der rechten Maustaste auf den Programmcode und klicken Sie auf Ausführen als. Klicken Sie dann auf TestNG… und Sie werden feststellen, dass die Ausführung des Codes mithilfe der testNG-API beginnt.

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;	

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	
    }	
}	

Schauen Sie sich dieses Video an, um es in Aktion zu sehen

Vorteile der Roboterklasse

  1. Die Roboterklasse kann Tastatur- und Mausereignisse simulieren
  2. Robot Class kann beim Hoch- und Herunterladen von Dateien helfen, wenn Selenium-Webtreiber verwendet wird
  3. Robot Class kann problemlos in das aktuelle Automatisierungs-Framework integriert werden (schlüsselwortgesteuert, datengesteuert oder hybrid).

Nachteile der Roboterklasse

Das Robotergerüst hat einige der unten aufgeführten Nachteile:

  1. Das Schlüsselwort-/Mausereignis funktioniert nur auf der aktuellen Windows-Instanz. Angenommen, ein Code führt ein beliebiges 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 die Möglichkeit besteht, dass Code, der auf einem Computer funktioniert, auf einem anderen nicht funktioniert.

Zusammenfassung

Die Roboterklasse im AWT-Paket wird zum Generieren von Tastatur-/Mausereignissen zur Interaktion mit Betriebssystemfenstern und nativen Apps verwendet.

Der Hauptzweck von Robot ist die Unterstützung von Selenium-Automatisierungstests im Projekt Java  von Quibim