Suche…


Einführung

Die 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 dem mouseHover Objekt oder beim Testen mit Ihrem fortsetzen driver 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);


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow