In diesem Tutorial lernen wir den Umgang mit Tastatur- und Mausereignissen in Selenium Webdriver
Aktionsklasse in Selen
Die Aktionsklasse in Selen ist eine integrierte Funktion des Selens zur Behandlung von Tastatur- und Mausereignissen. Es enthält verschiedene Vorgänge wie das Klicken mehrerer Ereignisse mit der Steuertaste, Drag & Drop-Ereignisse und vieles mehr. Diese Vorgänge aus der Aktionsklasse werden mithilfe der erweiterten Benutzerinteraktions-API in Selenium Webdriver ausgeführt.
Umgang mit Tastatur- und Mausereignissen
Die Behandlung spezieller Tastatur- und Mausereignisse erfolgt über die Advanced User Interactions API . Es enthält die Aktionen und die Aktionsklassen , die zum Ausführen dieser Ereignisse benötigt werden. Im Folgenden sind die am häufigsten verwendeten Tastatur- und Mausereignisse aufgeführt, die von der Actions-Klasse bereitgestellt werden.
Methode | Beschreibung |
---|---|
klicken und Halten() | Klicks (ohne loszulassen) auf die aktuelle Mausposition. |
contextClick () | Führt einen Kontextklick auf die aktuelle Mausposition aus. (Rechtsklick Mausaktion) |
Doppelklick() | Führt einen Doppelklick auf die aktuelle Mausposition durch. |
dragAndDrop (Quelle, Ziel) | Führt ein Klicken und Halten an der Position des Quellelements durch, bewegt sich zur Position des Zielelements und lässt die Maus los. Parameter: Quellelement zum Emulieren der Schaltfläche nach unten bei Zielelement zum Bewegen und Loslassen der Maus bei. |
dragAndDropBy (Quelle, x-Offset, y-Offset) | Führt ein Klicken und Halten an der Position des Quellelements aus, bewegt sich um einen bestimmten Versatz und lässt dann die Maus los. Parameter : Quellelement zum Emulieren der Schaltfläche nach unten bei.xOffset- horizontaler Verschiebungsversatz.yOffset- vertikaler Verschiebungsversatz. |
keyDown (modifier_key) | Führt einen Modifizierertastendruck durch. Lässt die Modifizierertaste nicht los - nachfolgende Interaktionen können davon ausgehen, dass sie gedrückt gehalten wird. Parameter : modifier_key - eine der Modifikatortasten (Keys.ALT, Keys.SHIFT oder Keys.CONTROL) |
keyUp (Modifikator _key) | Führt eine Schlüsselfreigabe durch. Parameter : modifier_key - eine der Modifikatortasten (Keys.ALT, Keys.SHIFT oder Keys.CONTROL) |
moveByOffset (x-Offset, y-Offset) | Bewegt die Maus von ihrer aktuellen Position (oder 0,0) um den angegebenen Versatz. Parameter : x-Versatz - horizontaler Versatz. Ein negativer Wert bedeutet, dass Sie die Maus nach links bewegen. Y-Versatz - vertikaler Versatz. Ein negativer Wert bedeutet, die Maus nach unten zu bewegen. |
moveToElement (toElement) | Bewegt die Maus in die Mitte des Elements. Parameter : toElement- Element, zu dem verschoben werden soll. |
Veröffentlichung() | Lässt die gedrückte linke Maustaste an der aktuellen Mausposition los |
sendKeys (onElement, charsequence) | Sendet eine Reihe von Tastenanschlägen auf das Element. Parameter : onElement - Element, das die Tastenanschläge empfängt, normalerweise eine Textfeldsequenz - ein beliebiger Zeichenfolgenwert, der die Folge der zu sendenden Tastenanschläge darstellt |
Im folgenden Beispiel verwenden wir die moveToElement () -Methode, um mit der Maus über die Tabellenzeilen einer Mercury Tours zu fahren. Siehe das folgende Beispiel.
Die oben gezeigte Zelle ist ein Teil eines
Schritt 1: Importieren Sie die Klassen Aktionen und Aktion .
Schritt 2: Instanziieren Sie ein neues Actions-Objekt.
Schritt 3: Instanziieren Sie eine Aktion mit dem Actions-Objekt in Schritt 2.
In diesem Fall verwenden wir die moveToElement () -Methode, da wir einfach mit der Maus über den Link "Home" fahren. Die build () -Methode ist immer die endgültige Methode, mit der alle aufgelisteten Aktionen in einem einzigen Schritt kompiliert werden.
Schritt 4: Verwenden Sie die perform () -Methode, wenn Sie das in Schritt 3 entworfene Action-Objekt ausführen.
Unten finden Sie den gesamten WebDriver-Code, mit dem Sie die Hintergrundfarbe des
Paket newproject;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Actions;öffentliche Klasse PG7 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");WebDriver-Treiber = neuer FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Home"));WebElement td_Home = Treiber.findElement (By.xpath ("// html / body / div"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr"));Builder für Aktionen = neue Aktionen (Treiber);Aktion mouseOverHome = Builder.moveToElement (link_Home).bauen();String bgColor = td_Home.getCssValue ("Hintergrundfarbe");System.out.println ("Vor dem Schweben: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("Hintergrundfarbe");System.out.println ("Nach dem Schweben: + bgColor);driver.close ();}}}}
Die folgende Ausgabe zeigt deutlich, dass die Hintergrundfarbe nach dem Mouseover transparent wurde.
Erstellen einer Reihe mehrerer Aktionen
Mit den Klassen Action und Actions können Sie eine Reihe von Aktionen erstellen . Denken Sie daran, die Serie mit der Methode build () zu schließen. Betrachten Sie den folgenden Beispielcode.
public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";WebDriver-Treiber = neuer FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("email"));Builder für Aktionen = neue Aktionen (Treiber);Action seriesOfActions = Builder.moveToElement (txtUsername).klicken().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "Hallo").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().bauen();seriesOfActions.perform ();}}
Zusammenfassung
- Die Behandlung spezieller Tastatur- und Mausereignisse erfolgt über die AdvancedUserInteractions-API.
- Häufig verwendete Schlüsselwort- und Mausereignisse sind doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.