サーチ…


前書き

Actionsクラスは、ユーザーがWebページ/要素とどのように対話するかを正確にエミュレートする方法を提供します。このクラスのインスタンスを使用すると、クリック、ダブルクリック、ドラッグ、キーの押下などの一連のアクションを記述できます。これらのアクションが記述されると、アクションを実行するためにアクションをビルドする必要があります( .Build() )を実行し、実行するように指示します( .Perform() )。だから我々は、記述し、構築し、実行する必要があります。以下の例はこれに基づいて拡張されます。

構文

  • dragAndDrop(WebElementソース、WebElementターゲット)
  • dragAndDropBy(WebElement source、int xOffset、int yOffset)
  • perform()

パラメーター

パラメーター詳細
ソースボタンをエミュレートする要素。
ターゲットマウスを移動してマウスを離す要素。
xOffset x座標に移動する。
yオフセット y座標に移動する。

備考

このセクションでは、Selenium WebDriverのActionsクラスについて説明します。 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();
        }
    }
}

上の例では、 IWebElementsource )を見つけてドラッグし、2番目のIWebElementtargetドロップします。

Java

ソースとターゲットのWeb要素を使用してドラッグアンドドロップします。

ソース要素の位置でクリック&ホールドを実行し、ターゲット要素の位置に移動してからマウスを離していく便利なメソッドです。

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#

要素の上にマウスを置くと、ドロップリストが表示されることをテストしたいとします。このリストの内容を確認したり、リストからオプションを選択することができます。

最初に、要素の上にマウスを移動するアクションを作成します(たとえば、my要素にリンクテキスト "Admin"があります)

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

上記の例では、

  • アクションmouseHoverを作成しましたmouseHover
  • あなたはdriverに特定の要素に移動するように言いました
  • ここから、 mouseHoverオブジェクトで他のActionsを実行するか、 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