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: )
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
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
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).
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
- Die Roboterklasse kann Tastatur- und Mausereignisse simulieren
- Robot Class kann beim Hoch- und Herunterladen von Dateien helfen, wenn Selenium-Webtreiber verwendet wird
- 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:
- 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.
- 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




