WebDriverのアクション
Selenium WebDriver接続に基づくテストのSenseTalkスクリプトを書く際には、WebDriverアクションを使用してウェブブラウザやモバイルデバイスに接続し、テストに含まれるページやモバイルアプリをナビゲートし、これらのページやアプリ上でアクションを実行します。SenseTalkには、テスト対象のウェブページ上でこれらのアクションを実行するためのいくつかのコマンドと関数が含まれています。
WebDriverの接続
WebDriverアクションを使用するには、まずウェブブラウザへのアクティブな接続を作成する必要があります。接続のタイプは、自身のITインフラストラクチャ上でブラウザを自己ホストする予定か、Sauce Labsのブラウザ・アズ・ア・サービス・インフラストラクチャを使用する予定かによります。
自己ホストのブラウザを使用する予定の場合、Eggplant Functionalの明示的なWebDriver接続を使用する必要があります。WebDriver接続は、Eggplant Functionalで画像ベースのスクリプティングを行うためのVNCまたはRDP接続と似ています。WebDriver接続を作成する方法はいくつかあります:
- WebConnectコマンドを使用する。
- WebDriver関数を使用する。
- Eggplant FunctionalのConnection Listを通じてWebDriver接続を設定する。
Sauce Labs接続を利用する予定の場合、単一のSauce Labs接続は論理的にVNC接続とWebDriver接続の両方を公開していることを理解しておくべきです。WebDriver接続は、Sauce Labs接続が作成されたときに自動的に作成され、VNC接続とは独立して管理することはできません。したがって、WebConnectコマンドはSauce Labs接続の管理に使用することはできません。
Sauce Labs接続を作成する方法はいくつかあります:
- Connectコマンドを使用する。
- Eggplant FunctionalのConnection Listを通じて接続を設定する。
SSauce Labs接続が一度確立されると、明示的なWebDriver接続と同じ構文を使用して、Sauce Labs接続にWebDriverコマンドを送信することができます。
WebDriverConnectionオブジェクトのプロパティ
上記のアプローチのいずれかを使用してウェブブラウザへの接続を作成すると、SenseTalkは接続に関する情報を提供するいくつかのプロパティを持つWebDriverConnectionオブジェクトを作成します。以下に、WebDriverConnectionオブジェクトのプロパティの一覧を示します:
-
url: ブラウザに現在表示されているページのURL。WebDriverConnectionオブジェクトのURLプロパティを設定すると、ブラウザは指定したURLに移動します。
-
title: ブラウザに現在表示されているページのタイトル(つまり、Titleタグの値)。このプロパティは変更できません。
-
pageSource: ブラウザに現在表示されているページの全HTMLソース。このプロパティは変更できません。
-
alertText: ブラウザに現在表示されているアラートメッセージのテキスト(ある場合)。このプロパティは変更できません。
-
activeElement: このプロパティは、ブラウザのアクティブな要素のWebElementオブジェクトです。戻される可能性のあるプロパティについての情報は、WebElementオブジェクトを参照してください。このプロパティは変更できません。
-
cookies: ブラウザで現在表示されているページに関連するすべてのクッキーのリスト。各クッキーは、
name
、value
、その他のクッキーに関連するプロパティを含むプ ロパティリストです。プロパティに含まれるクッキーを確認できます:
put the webdriver's cookies // すべてのクッキーを表示します
put each item of the webdriver's cookies whose domain is ".testplant.com" // 指定したクッキーのみを表示しますリストにクッキーを追加することができます。クッキーを追加するときは、名前と値を指定する必要があります:
insert (Name:"addition1", value:"my secret stuff") into the webdriver's cookies
リストからクッキーを削除することができます:
set the webdriver's cookies to each item of the webdriver's cookies whose domain is not ".testplant.com" // .testplant.com以外のドメインのクッキーを削除します
set the webdriver's cookies to empty // すべてのクッキーを削除します -
windowHandle: このプロパティは、現在のブラウザウィンドウの一意の識別子です。ブラウザに複数のウィンドウがある場合、
windowHandle
プロパティを異なる値に設定してウィンドウのフォーカスを切り替えることができます。 -
allWindowHandles: このリストは、ブラウザで開かれている各ウィンドウの一意の
windowHandle
識別子を示しています。これらの識別子を使用してwindowHandle
プロパティを設定し、フォーカスを別のウィンドウに切り替えることができます。このプロパティは変更できません。 -
windowRectangle (またはwindowRect): 現在のブラウザウィンドウの長方形(x1、y1、x2、y2)。
windowRectangle
プロパティを設定すると、ウィンドウのサイズと位置が変わります。 -
windowSize: 現在のブラウザウィンドウのサイズ(幅、高さ)。
windowSize
プロパティを設定すると、ウィンドウのサイズが変わります。幅と高さを設定するか、max
を使用してブラウザのサイズを最大化することで、ブラウザウィンドウのサイズを変更することができます。set the webdriver's windowsize to "500, 1000"
set the webdriver's windowsize to "max" -
windowOrigin (または windowLocation): 現在のブラウザウィンドウの原点(左上隅)の座標(x、y)。
windowOrigin
プロパティを設定すると、画面上のウィンドウの位置が変わります。 -
geoLocation: 緯度、経度、そしてオプションで高度プロパティを持つプロパティリストで、これはブラウザの地理的な位置を表しています。例えば:
(altitude:"value", latitude:"value", longitude:"value")
このプロパティを使用してブラウザの地理的な位置を設定することができます:
set the webdriver's geoLocation to (altitude: 42,latitude:33.8099601,longitude:-117.91554840000003)
注意してください、すべてのウェブサイトがブラウザの地理的な位置をローカリゼーションに利用しているわけではありません。
-
- capabilities: このWebDriver接続を通じて利用可能な特定の能力のプロパティリスト。このプロパティリストに含まれる値を変更することはできません。
先端初期の接続を開くときに
WebConnect
コマンドまたはWebDriver()
関数を通じて希望の能力をリクエストすることができますが、ブラウザはそのようなリクエストを必ずしも尊重しないかもしれません。そのため、接続を確立した後にCapabilities
プロパティリストをリクエストすることが有用で、実際の能力を確認する必要がある場合に利用できます:log the webdriver's capabilities
-
**名:**この WebDriver 接続のユーザー割り当ての名前。この値は、Connection List を使用して WebDriver 接続を作成するとき、または
WebConnect
コマンドまたはWebDriver
関数を使用して接続を開くときにname
プロパティを使用して指定できます。WebDriver 接続を開いた後で、このプロパティを変更することはできません。 -
browser: WebDriver接続を作成する際にConnection Listで指定するブラウザの名前、または
WebConnect
コマンドまたはWebDriver
関数を使用してWebDriver接続を開く際のbrowser
プロパティです。WebDriver接続を開いた後は、このプロパティを変更することはできません。 -
host: WebDriverサーバーが稼働しているホストマシンです。このプロパティは変更できません。
-
port: このWebDriver接続がサーバーと通信しているポートの番号です。このプロパティは変更できません。