selenium-webdriver
Åtgärder (Emulera komplexa användargester)
Sök…
Introduktion
Actions
ger oss ett sätt att efterlikna exakt hur en användare skulle interagera med en webbsida / element. Med hjälp av en instans av den här klassen kan du beskriva en serie åtgärder, till exempel att klicka, dubbelklicka, dra, trycka på tangenter osv. När dessa åtgärder har beskrivits, för att utföra åtgärderna måste du ringa måste bygga åtgärderna ( .Build()
) och instruera dem sedan att utföras ( .Perform()
). Så vi måste beskriva, bygga, utföra. Exemplen nedan kommer att utvidga detta.
Syntax
- dragAndDrop (WebElement-källa, WebElement-mål)
- dragAndDropBy (WebElement-källa, int xOffset, int yOffset)
- prestera()
parametrar
parametrar | detaljer |
---|---|
källa | Element att emulera knappen ner kl. |
mål | Element att flytta till och släppa musen kl. |
XOffset | x koordinat för att flytta till. |
'Yoffset' | y koordinat för att flytta till. |
Anmärkningar
Det här avsnittet innehåller information om åtgärdsklassen för Selenium WebDriver. Åtgärdsklassen ger dig bekväma metoder för att utföra komplexa användargester som dra och släpp, hålla och klicka etc.
Dra och släpp
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();
}
}
}
Ovanstående hittar en IWebElement
, source
och dra den till och släppa den till det andra IWebElement
target
.
Java
Dra och släpp med hjälp av käll- och målwebelement.
En bekvämhetsmetod som utför klick-och-håll på platsen för källelementet, flyttar till platsen för målelementet och släpper sedan musen.
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();
}
}
Dra ett element och släpp det vid en viss förskjutning.
En bekvämhetsmetod som utför klick-och-håll på platsen för källelementet, rör sig med en given förskjutning (x och y, båda heltal) och släpper sedan musen.
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
Flytta till element
C #
Anta att du vill testa att när du håller muspekaren över ett element visas en släpplista. Du kanske vill kontrollera innehållet i denna lista, eller kanske välja ett alternativ i listan.
Skapa först en åtgärd för att sväva över elementet (t.ex. mitt element har länktexten "Admin") :
Actions mouseHover = new Actions(driver);
mouseHover.MoveToElement(driver.FindElement(By.LinkText("Admin"))).Perform();
I exemplet ovan:
- Du har skapat åtgärden
mouseHover
- Du har sagt till
driver
att flytta till ett specifikt element - Härifrån kan du utföra andra
Actions
medmouseHover
objektet eller fortsätta testa med dittdriver
Denna metod är särskilt användbar när du klickar på ett element utför en annan funktion än att sväva över det.
Ett fullständigt exempel:
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);