selenium-webdriver
Aktionen (Emulieren komplexer Benutzergesten)
Suche…
Einführung
Actions
Klasse ermöglicht es uns, genau zu emulieren, wie ein Benutzer mit einer Webseite / Elementen interagieren würde. Mit einer Instanz dieser Klasse können Sie eine Reihe von Aktionen beschreiben, z. B. Klicken, Doppelklicken, Ziehen, Drücken von Tasten usw. Wenn diese Aktionen beschrieben sind, müssen Sie die Aktionen erstellen, um die Aktionen auszuführen ( .Build()
) und weist sie an, ausgeführt zu werden ( .Perform()
). Also müssen wir beschreiben, bauen, durchführen. Die folgenden Beispiele werden darauf eingehen.
Syntax
- dragAndDrop (WebElement-Quelle, WebElement-Ziel)
- dragAndDropBy (WebElement-Quelle, int xOffset, int yOffset)
- ausführen()
Parameter
Parameter | Einzelheiten |
---|---|
Quelle | Element zum Emulieren der Schaltfläche unten. |
Ziel | Element zum Bewegen und Loslassen der Maus. |
xOffset | x Koordinate zum Umzug. |
yOffset | y koordinieren, um zu bewegen. |
Bemerkungen
Dieser Abschnitt enthält Informationen zur Actions-Klasse von Selenium WebDriver. Die Actions-Klasse bietet Ihnen praktische Methoden zum Ausführen komplexer Benutzergesten wie Ziehen und Ablegen, Halten und Klicken usw.
Drag & Drop
C #
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Interactions;
namespace WebDriverActions
{
class WebDriverTest
{
static void Main()
{
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("");
IWebElement source = driver.FindElement(By.CssSelector(""));
IWebElement target = driver.FindElement(By.CssSelector(""));
Actions action = new Actions(driver);
action.DragAndDrop(source, target).Perform();
}
}
}
Das Obige sucht nach einem IWebElement
, source
, und zieht es an das zweite IWebElement
target
und IWebElement
.
Java
Drag & Drop mit Quell- und Ziel-Webelement.
Eine bequeme Methode, bei der an der Position des Quellelements ein Klicken und Halten ausgeführt wird, bewegt sich an die Position des Zielelements und gibt dann die Maus frei.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
/**
* Drag and Drop test using source and target webelement
*/
public class DragAndDropClass {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("");
WebElement source = driver.findElement(By.cssSelector(""));
WebElement target = driver.findElement(By.cssSelector(""));
Actions action = new Actions(driver);
action.build();
action.dragAndDrop(source, target).perform();
}
}
Ziehen Sie ein Element und legen Sie es an einem bestimmten Versatz ab.
Eine bequeme Methode, bei der das Klicken und Halten an der Position des Quellelements ausgeführt wird, um einen bestimmten Versatz (x und y, beide Ganzzahlen) verschoben wird, und die Maus losgelassen wird.
WebElement source = driver.findElement(By.cssSelector(""));
Actions action = new Actions(driver);
action.build()
action.dragAndDropBy(source, x, y).perform(); // x and y are integers value
Zu Element wechseln
C #
Angenommen, Sie möchten testen, dass eine Dropdown-Liste angezeigt wird, wenn Sie mit der Maus über ein Element fahren. Sie können den Inhalt dieser Liste überprüfen oder eine Option aus der Liste auswählen.
Erstellen Sie zuerst eine Aktion, um den Mauszeiger über das Element zu bewegen (z. B. hat mein Element den Linktext "Admin") :
Actions mouseHover = new Actions(driver);
mouseHover.MoveToElement(driver.FindElement(By.LinkText("Admin"))).Perform();
Im obigen Beispiel:
- Sie haben die Aktion
mouseHover
- Sie haben dem
driver
befohlen, zu einem bestimmten Element zu wechseln - Von hier aus können Sie andere ausführen
Actions
mit demmouseHover
Objekt oder beim Testen mit Ihrem fortsetzendriver
Objekt
Dieser Ansatz ist besonders nützlich, wenn Sie auf ein Element klicken, das eine andere Funktion als das Bewegen über das Element ausführt.
Ein vollständiges Beispiel:
Actions mouseHover = new Actions(driver);
mouseHover.MoveToElement(driver.FindElement(By.LinkText("Admin"))).Perform();
Assert.IsTrue(driver.FindElement(By.LinkText("Edit Record")).Displayed);
Assert.IsTrue(driver.FindElement(By.LinkText("Delete Record")).Displayed);