selenium-webdriver
アクション(複雑なユーザーのジェスチャーをエミュレートする)
サーチ…
前書き
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();
}
}
}
上の例では、 IWebElement
( source
)を見つけてドラッグし、2番目のIWebElement
( target
ドロップします。
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