Поиск…


Вступление

Класс Actions дает нам способ точно понять, как пользователь будет взаимодействовать с веб-страницей / элементами. Используя экземпляр этого класса, вы можете описать ряд действий, таких как щелчок, двойное нажатие, перетаскивание, нажатие клавиш и т. Д. После того, как эти действия описаны, чтобы выполнить действия, вы должны вызывать, чтобы строить действия ( .Build() ), а затем инструктируйте их выполнить ( .Perform() ). Поэтому мы должны описывать, строить, выполнять. Ниже будут рассмотрены примеры ниже.

Синтаксис

  • dragAndDrop (источник WebElement, цель WebElement)
  • dragAndDropBy (источник WebElement, int xOffset, int yOffset)
  • выполнить ()

параметры

параметры подробности
источник Элемент для эмуляции кнопки вниз.
цель Элемент для перемещения и выключения мыши.
xOffset x координата для перемещения.
YOffset y координируйте движение.

замечания

В этом разделе содержится информация о классе действий Selenium WebDriver. Класс Actions предоставляет вам удобные методы для выполнения сложных жестов пользователя, таких как перетаскивание, удержание и клик и т. Д.

Перетаскивание

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

Вышеупомянутый IWebElement , source и перетащить его, и перетащите его во вторую target IWebElement .

Джава

Перетаскивание с использованием источника и целевого веб-элемента.

Метод удобства, который выполняет щелчок и удерживание в местоположении исходного элемента, перемещается в местоположение целевого элемента, а затем освобождает мышь.

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

Перетащите элемент и опустите его с заданным смещением.

Метод удобства, который выполняет щелчок и удерживание в местоположении исходного элемента, перемещается по заданному смещению (x и y, оба целых числа), а затем освобождает мышь.

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

Перейти к элементу

C #

Предположим, вы хотите проверить, что, когда вы наведете над элементом, отобразится список переходов. Вы можете проверить содержимое этого списка или выбрать опцию из списка.

Сначала создайте действие, чтобы навести курсор на элемент (например, у моего элемента есть текст ссылки «Admin») :

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

В приведенном выше примере:

  • Вы создали действие mouseHover
  • Вы сказали driver перейти к определенному элементу
  • Отсюда вы можете выполнять другие Actions с объектом mouseHover или продолжать тестирование с помощью своего объекта- driver

Этот подход особенно полезен, если щелчок на элементе выполняет другую функцию, чем зависание над ним.

Полный пример:

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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow