selenium-webdriver
Acciones (Emulando gestos de usuario complejos)
Buscar..
Introducción
Actions
nos permite emular con precisión cómo un usuario interactuaría con una página web / elementos. Usando una instancia de esta clase, puede describir una serie de acciones, como hacer clic, hacer doble clic, arrastrar, presionar teclas, etc. Una vez que se describen estas acciones, para poder llevar a cabo las acciones, debe realizar una llamada. ( .Build()
) y luego .Build()
que se realicen ( .Perform()
). Así que debemos describir, construir, realizar. Los ejemplos a continuación se expandirán sobre esto.
Sintaxis
- dragAndDrop (fuente de WebElement, destino de WebElement)
- dragAndDropBy (fuente WebElement, int xOffset, int yOffset)
- realizar()
Parámetros
Parámetros | Detalles |
---|---|
fuente | Elemento para emular el botón hacia abajo en. |
objetivo | Elemento para mover y soltar el mouse en. |
xOffset | x coordinar para moverse a. |
yOffset | y coordinar para moverse a. |
Observaciones
Esta sección contiene información de la clase de Acciones de Selenium WebDriver. La clase Acciones le proporciona métodos convenientes para realizar gestos de usuarios complejos como arrastrar y soltar, mantener y hacer clic, etc.
Arrastrar y soltar
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();
}
}
}
Lo anterior encontrará un IWebElement
, source
, y lo arrastrará, y lo IWebElement
en el segundo target
IWebElement
.
Java
Arrastre y suelte utilizando el elemento web de origen y destino.
Un método conveniente que realiza un clic y mantiene en la ubicación del elemento de origen, se mueve a la ubicación del elemento de destino, y luego libera el mouse.
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();
}
}
Arrastre un elemento y suéltelo en un desplazamiento dado.
Un método conveniente que realiza un clic y mantiene en la ubicación del elemento fuente, se mueve en un desplazamiento dado (xey, ambos enteros), luego libera el mouse.
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
Mover al elemento
DO#
Supongamos que desea probar que cuando se desplaza sobre un elemento, se muestra una lista desplegable. Es posible que desee verificar el contenido de esta lista, o tal vez seleccionar una opción de la lista.
Primero cree una acción, para desplazarse sobre el elemento (por ejemplo, mi elemento tiene el texto de enlace "Admin") :
Actions mouseHover = new Actions(driver);
mouseHover.MoveToElement(driver.FindElement(By.LinkText("Admin"))).Perform();
En el ejemplo anterior:
- Has creado la acción
mouseHover
- Usted le ha dicho al
driver
que se mueva a un elemento específico - Desde aquí puede realizar otras
Actions
con el objetomouseHover
o continuar con las pruebas con su objetodriver
Este enfoque es de particular uso cuando el hacer clic en un elemento realiza una función diferente a la del cursor sobre él.
Un ejemplo completo:
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);