WebDriverマウスとキーボードのイベント
Eggplant FunctionalとSenseTalkを使用したWebDriverテストは、テスト対象のページのDOMに存在するWebElementオブジェクト(HTML要素)にアクセスしてブラウザやウェブアプリのアクションを自動化することができます。以下に説明するコマンドと関数を使用して、Selenium WebDriver接続に基づいたSenseTalkスクリプトでマウスとキーボードのイベントを実行します。
WebElementの識別子
DOM内のWebElementにアクセスするために、FindElement()
関数やWebDriver接続とClick
コマンドを使用する場合など、あなたが対話することを希望する要素を指定するいくつかの方法があります。以下のWebElementの識別子は、DOM内の要素を探すために使用することができます:
- webID: このプロパティは、そのID属性の値によって要素を見つけるために使用します。
- webName: このプロパティは、そ のName属性の値によって要素を見つけるために使用します。
- webTagName: このプロパティは、HTMLタグが指定した値と等しい要素を見つけるために使用します。
- webClassName: このプロパティは、そのClass属性の値によって要素を見つけるために使用します。
- webLinkText: このプロパティは、そのテキストが指示した値と等しいリンクを見つけるために使用します。
- webPartialLinkText: このプロパティは、そのテキストが指示した値を含むリンクを見つけるために使用します。
- webCssSelector: このプロパティは、指示されたCSSセレクタの表現を使用して要素を見つけるために使用します。
- webXPath: このプロパティは、XPath表現を使用して要素を見つけるために使用します。XPathとXPath表現についての詳細は、XPath in Selenium WebDriver: Complete Tutorialをご覧ください。
WebLocationの識別子
WebLocationの識別子は、WebElementと対話するための別の方法です。WebLocationの識別子は、objectType、x、およびyプロパティを含むプロパティリストです。objectTypeは常にwebLocation
で、xとyプロパティはウェブページ上の点の座標を表します。例えば:
{objectType:"webLocation", x:"476", y:"83"}
通常、WebElementが位置する座標を使用します。FoundWebLocation()
関数は、見つかったWebElementのWebLocationプロパティリストを返します。
マウスイベント
以下のSenseTalkコマンドを使用して、WebDriver接続とWebElementでマウスイベントをシミュレートすることができます。
Click
コマンド
このコード定義は、WebDriver接続のClick
コマンドの使用方法を説明しています。画像ベースのスクリプティングでこのコマンドを使用する方法については、Mouse Events and Control: Click Commandを参照してください。
動作: Click
コマンドは、DOM内の要素を見つけ、その場所でクリックイベントをシミュレートします。
パラメータ: 必要なWebElement IdentifierとオプションのWaitFor
プロパティを含むプロパティリスト。または、WebLocation Identifierを含むプロパティリストを提供できます。その場合、WaitFor
プロパティは関係ありません。
複数のWebElement Identifiersを渡すこともできます。その場合、それぞれが別々のプロパティリストとして含まれるべきです。複数のWebElementを渡すと、Eggplant Functionalは、コマンドでリストした順にそれらを検索します。複数のプロパティリストにWaitFor
プロパティを含めると、SenseTalkはコマンド全体に対して最も長いWaitFor
値を使用します。つまり、そのプロパティを複数回適用することはありません。
Syntax:
Click { identifierType: value {, waitFor: duration} }
Click { objectType: "webLocation", x: valueX , y: valueY }
Click { identifierType: value {, waitFor: duration} } {, { identifierType2: value2 {, waitFor: duration2} }, ... }
例:
click (webName:"q")
例:
Click {webid:"uh-signin",waitFor:10}
例:
if webElementFound(WebID:"login-username",WaitFor:10)
Click the FoundWebLocation // Clicks at the web location of the login-username web element
end if
例:
set CheckBoxes to FindElements(WebCSSSelector:"input[type=checkbox]:not([checked])")
repeat with each CheckBox of CheckBoxes
Click CheckBox
end repeat