WebElementsの探索
Selenium WebDriver接続に基づくテストのためのSenseTalkスクリプトを書くとき、あなたの努力の多くは、テストしているページのDocument Object Model(DOM)のさまざまなHTML要素と対話することに基づいている可能性があります。これらのDOMの要素は、しばしばWebElementオブジェクトと呼ばれます。
SenseTalkには、ページ内のWebElementsを探索するためのさまざまな方法を提供するいくつかのコマンドと関数が含まれています。これにより、あるアクションを行う、情報を見つける、またはそれらの要素に対して検証を行うことができます。
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を参照してください。
WebElementオブジェクト
成功したWebElementの検索は、WebElementオブジェクトを作成します。このオブジェクトには、見つかった要素に関する情報を含むプロパティリストが含まれています。WebElementオブジェクトは以下のリストから任意のプロパティを含むことができますが、すべてのプロパティが必ずしも値を返すわけではありません。特定のWebElementタイプがどのプロパティに有用な値を持つかを決定します。
- Text: ブラウザで表示される要素に含まれる見えるテキスト。
- tagName: 要素のHTMLタグ名。
- Name: 要素のName属性の値。
- ID: 要素のID属性の値。
- Class: 要素のClass属性の値。
- Attribute(): 要素の特定の属性の値を返す、またはその属性が存在しない場合は空になります。
- isSelected: 要素がブラウザで選択されているかどうかを示す
True
またはFalse
を返します。 - isEnabled: 要素がブラウザで有効化されているかどうかを示す
True
またはFalse
を返します。 - isDisplayed: 要素がブラウザで表示されているかどうかを示す
True
またはFalse
を返します。 - Origin: ページ内での要素の原点(左上角)のwebLocationプロパティリストを返します。例えば:
(objectType:"webLocation", x:"262", y:"323")
- Size: ページ内での要素のサイズ(幅、高さ)を返します。
- Rectangle: ページ内の要素の長方形(x1、y1、x2、y2)を返します。これらはブラウザの座標であり、画面座標ではないことに注意してください。
- cssProperty: 要素の指定されたCSSプロパティの値を 返します。
- WebDriver: 要素を含むWebDriver接続のWebDriverConnectionオブジェクトを返します。
- WebContext: 要素を含むWebDriver接続のWebDriverConnectionオブジェクト、または指定された要素が見つかったWebElementオブジェクトを返します。
WebElementオブジェクトは、呼び出されたときに長い形式または短い形式で表示することができます。つまり、実行の結果ログです。長い形式がデフォルトで、いくつかのプロパティの値が自動的に表示されます。長い形式では、WebElementオブジェクトが表示されるたびにWebDriverサーバーへの追加のリクエストが必要になることに注意してください。
the webElementDisplay
グローバルプロパティ を short
に変更して、短い形式を使用してWebElementsを表示します。現在のページコンテキストで要素が利用できない場合、WebElementオブジェクトはthe WebElementDisplay
が長いに設定されていても短い形式で表示されます。
FindElement
, FindElements
コマンドと関数
挙動: FindElement
はコマンドまたは関数として呼び出すことができます。それはページ内または別の要素内の特定の要素を見つけます。FindElement
はWebDriverConnectionオブジェクトまたはFindElement
またはActiveElement
プロパティの以前の呼び出しによって返されたWebElementオブジェクトのいずれかで呼び出すことができます。また、WebDriverConnectionオブジェクトやWebElementオブジェクトへの参照なしにFindElement
を呼び出すこともできます。その場合、FindElement
はアクティブなWebDriver接続を使用します。
FindElements
は、コマンドまたは関数として、FindElement
と同じように動作しますが、最初に一致する要素を返すのではなく、見つかったすべての一致する要素を含むリストを返します。
FindElement
がコマンドとして呼び出されると、変数it
はWebElementオブジェクトに設定されます。FindElements
の場合は、WebElementオブジェクトのリストになります。
パラメータ: オプションのWebDriverConnectionオブジェクトと必要なWebElement Identifierを含むプロパティリスト。WebDriverConnectionが指定されていない場合、アクティブな接続が使用されます。
コマンド構文:
FindElement {WebDriver: webDriverName , } IdentifierType: value
FindElements {WebDriver: webDriverName , } IdentifierType: value
関数構文:
FindElement( {WebDriver: webDriverName , } IdentifierType: value )
FindElements( {WebDriver: webDriverName , } IdentifierType: value )
返り値: FindElement
の場合、返される値はWebElement object