Recherche…


Introduction

La classe Actions nous permet d'imiter avec précision la manière dont un utilisateur interagirait avec une page Web ou des éléments. En utilisant une instance de cette classe, vous pouvez décrire une série d'actions, telles que cliquer, double-cliquer, faire glisser, appuyer sur des touches, etc. Une fois ces actions décrites, vous devez appeler les actions pour exécuter les actions. ( .Build() ), puis leur demander d’être exécuté ( .Perform() ). Donc, nous devons décrire, construire, exécuter. Les exemples ci-dessous développeront cela.

Syntaxe

  • dragAndDrop (source WebElement, cible WebElement)
  • dragAndDropBy (source WebElement, int xOffset, int yOffset)
  • effectuer()

Paramètres

Paramètres Détails
la source Élément à émuler bouton vers.
cible Élément à déplacer et à relâcher la souris.
xOffset x coordonne pour aller à.
yOffset y coordonne pour passer à.

Remarques

Cette section contient des informations sur la classe Actions de Selenium WebDriver. La classe Actions vous fournit des méthodes pratiques pour effectuer des gestes complexes tels que le glisser-déposer, le maintien et le clic, etc.

Glisser déposer

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

Ce qui précède trouvera une source IWebElement et la déposera dans la seconde target IWebElement .

Java

Glissez et déposez en utilisant le webelement source et cible.

Une méthode pratique qui effectue un clic sur l'emplacement de l'élément source, se déplace à l'emplacement de l'élément cible, puis libère la souris.

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

Faites glisser un élément et déposez-le à un décalage donné.

Une méthode pratique qui effectue un click-and-hold à l'emplacement de l'élément source, se déplace d'un décalage donné (x et y, les deux entiers), puis libère la souris.

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

Déplacer vers l'élément

C #

Supposons que vous vouliez vérifier que lorsque vous survolez un élément, une liste déroulante est affichée. Vous voudrez peut-être vérifier le contenu de cette liste ou peut-être sélectionner une option dans la liste.

Commencez par créer une action, pour survoler l'élément (par exemple, mon élément a le texte du lien "Admin") :

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

Dans l'exemple ci-dessus:

  • Vous avez créé la mouseHover
  • Vous avez dit au driver de passer à un élément spécifique
  • De là, vous pouvez effectuer d'autres Actions avec l'objet mouseHover ou continuer à tester avec votre objet driver

Cette approche est particulièrement utile lorsque le clic sur un élément exécute une fonction différente de celle du survol.

Un exemple complet:

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow