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

Das 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) Die Datei src.zip befindet sich im JDK-Ordner. Kopieren Sie src.zip und extract dasselbe in einem anderen Ordner oder Verzeichnis (z. B. D: oder E: )

Dokumentation der Roboterklasse

Schritt 2) ExtracNavigieren Sie zum Ordner โ€žsrcโ€œ und gehen 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

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 Lernumgebung

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: