Ricerca…


introduzione

La classe Actions ci offre un modo di emulare esattamente come un utente interagirebbe con una pagina web / elementi. Usando un'istanza di questa classe puoi descrivere una serie di azioni, come fare clic, fare doppio clic, trascinare, premere i tasti, ecc. Una volta descritte queste azioni, per eseguire le azioni, devi chiamare deve costruire le azioni ( .Build() ) e quindi istruirli affinché vengano eseguiti ( .Perform() ). Quindi dobbiamo descrivere, costruire, eseguire. Gli esempi seguenti si espanderanno su questo.

Sintassi

  • dragAndDrop (origine WebElement, destinazione WebElement)
  • dragAndDropBy (origine WebElement, int xOffset, int yOffset)
  • eseguire()

Parametri

parametri Dettagli
fonte Elemento per emulare il pulsante in basso a.
bersaglio Elemento in cui spostarsi e rilasciare il mouse su.
xOffset x coordinata per spostarsi a.
YOffset y coordinare per passare a.

Osservazioni

Questa sezione contiene informazioni sulla classe Actions di Selenium WebDriver. La classe Actions ti offre metodi convenienti per eseguire gesti utente complessi come trascina e rilascia, tieni premuto e fai clic su altro.

Trascinare e rilasciare

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

Quanto sopra troverà un IWebElement , source , e lo trascinerà a, e lo IWebElement nel secondo IWebElement , target .

Giava

Trascina e rilascia utilizzando il webelement di origine e di destinazione.

Un metodo pratico che esegue il click-and-hold nella posizione dell'elemento sorgente, si sposta nella posizione dell'elemento di destinazione, quindi rilascia il 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();
    }
}

Trascina un elemento e rilasciarlo a un dato offset.

Un metodo pratico che esegue il click-and-hold nella posizione dell'elemento sorgente, si sposta di un dato offset (xey, entrambi gli interi), quindi rilascia il 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

Sposta in elemento

C #

Supponiamo di voler verificare che quando si passa con il mouse su un elemento, viene visualizzato un elenco a discesa. Potresti voler controllare il contenuto di questo elenco, o forse selezionare un'opzione dall'elenco.

Per prima cosa crea un'azione, passa il mouse sopra l'elemento (ad es. Il mio elemento ha il testo del link "Admin") :

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

Nell'esempio sopra:

  • Hai creato l'azione mouseHover
  • Hai detto al driver di passare a un elemento specifico
  • Da qui puoi eseguire altre Actions con l'oggetto mouseHover o continuare a testare con l'oggetto driver

Questo approccio è di particolare utilità quando si fa clic su un elemento che esegue una funzione diversa rispetto a passare sopra di esso.

Un esempio 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);


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow