Szukaj…


Wprowadzenie

Klasa Actions pozwala nam dokładnie emulować sposób interakcji użytkownika ze stroną internetową / elementami. Za pomocą instancji tej klasy możesz opisać serię akcji, takich jak klikanie, dwukrotne klikanie, przeciąganie, naciskanie klawiszy itp. Po opisaniu tych akcji, aby je wykonać, musisz zadzwonić, musisz je zbudować ( .Build() ), a następnie polecić ich wykonanie ( .Perform() ). Musimy więc opisać, zbudować, wykonać. Poniższe przykłady zostaną rozwinięte.

Składnia

  • dragAndDrop (źródło WebElement, cel WebElement)
  • dragAndDropBy (źródło WebElement, int xOffset, int yOffset)
  • wykonać()

Parametry

Parametry Detale
źródło Element do emulacji przycisku o.
cel Element, do którego należy przejść i zwolnić mysz.
xOffset x współrzędna do przejścia.
yOffset Współrzędna y, aby przejść do.

Uwagi

Ta sekcja zawiera informacje o klasie Actions Selenium WebDriver. Klasa Actions zapewnia wygodne metody wykonywania złożonych gestów użytkownika, takich jak przeciąganie i upuszczanie, przytrzymywanie i klikanie itp.

Przeciągnij i upuść

DO#

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();
        }
    }
}

Powyższy znajdzie IWebElement , source i przeciągnij go i upuść go do drugiego IWebElement , target .

Jawa

Przeciągnij i upuść, używając źródła i celu.

Metoda wygody polegająca na kliknięciu i przytrzymaniu w miejscu elementu źródłowego przenosi się do lokalizacji elementu docelowego, a następnie zwalnia mysz.

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();
    }
}

Przeciągnij element i upuść go pod danym przesunięciem.

Metoda wygody, która wykonuje kliknięcie i przytrzymanie w miejscu elementu źródłowego, przesuwa się o zadane przesunięcie (xiy, obie liczby całkowite), a następnie uwalnia mysz.

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

Przejdź do elementu

DO#

Załóżmy, że chcesz sprawdzić, czy po najechaniu wskaźnikiem na element wyświetlana jest lista rozwijana. Możesz sprawdzić zawartość tej listy lub wybrać opcję z listy.

Najpierw utwórz akcję, aby najechać wskaźnikiem na element (np. Mój element ma tekst linku „Administrator”) :

Actions mouseHover = new Actions(driver);
mouseHover.MoveToElement(driver.FindElement(By.LinkText("Admin"))).Perform();

W powyższym przykładzie:

  • Utworzyłeś akcję mouseHover
  • Kazałeś driver przejść do określonego elementu
  • Stąd możesz wykonywać inne Actions za pomocą obiektu mouseHover lub kontynuować testowanie z obiektem driver

Takie podejście jest szczególnie użyteczne, gdy kliknięcie elementu wykonuje inną funkcję niż najechanie na niego wskaźnikiem.

Pełny przykład:

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow