WebDriverアクション

SeleniumWebDriver接続に基づいてSenseTalkの テスト用スクリプトを記述する場合は、WebDriverアクションを使用してウェブブラウザに接続し、その後テストに含まれるページ間を移動してこれらのページ上でアクションを実施します。 SenseTalkは、テスト対象のページ上でこうしたアクションを実行できるコマンドや関数をいくつか用意しています。

下記に、以下のコマンドと関数の説明を示します。

WebDriver接続

WebDriverアクションを利用するには、ウェブブラウザへのアクティブな接続を作成する必要があります。 WebDriver接続は、画像ベースのスクリプティングに使用するVNCやRDP接続に類似していますEggplant Functional。 WebDriver接続は、以下のいずれかのアプローチを使用して作成できます。

WebDriverConnectionオブジェクトプロパティ

上記アプローチのいずれかを利用してウェブブラウザへの接続を作成する場合に、SenseTalkはWebDriverConnectionオブジェクトを作成します。本オブジェクトには、接続情報を提供する多くのプロパティが含まれます。 以下のリストに、WebDriverConnectionオブジェクトプロパティを示します。

  • url:ブラウザに現在表示されているページのURL。 WebDriverConnectionオブジェクトのURLプロパティの設定により、ブラウザは指定されたURLに移動するように命令されます。
  • title:ブラウザに現在表示されているページのタイトル(タイトルタグの値)。 本プロパティを変更することはできません。
  • pageSource:ブラウザに現在表示されているページのHTMLソース全体。 本プロパティを変更することはできません。
  • alertText:ブラウザに現在表示されている警告メッセージのテキスト(存在する場合)。 本プロパティを変更することはできません。
  • activeElement:本プロパティは、ブラウザ内のアクティブな要素に関するWebElementオブジェクトです。 返されるプロパティに関する情報は、WebElementオブジェクトを参照してください。 本プロパティを変更することはできません。
  • cookies:ブラウザに現在表示されているページに関連付けられているすべてのcookieのリスト。 各cookieは、namevalueなど、cookieに関連付けられているプロパティを含むプロパティリストです。
  • プロパティに含まれているcookieを確認できます。

    put the webdriver's cookies // cookieをすべて表示させます

    put each item of the webdriver's cookies whose domain is ".testplant.com" // 指定したcookieのみが表示されます

    cookieをリストに追加できます。 cookieを追加する場合は、名前と値を指定する必要があります。

    insert (Name:"addition1", value:"my secret stuff") into the webdriver's cookies

    リストからcookieを削除できます。

    set the webdriver's cookies to each item of the webdriver's cookies whose domain is not ".testplant.com" // .testplant.comというドメインを持たないcookieが削除されます

    set the webdriver's cookies to empty // cookieがすべて削除されます

  • windowHandle:本プロパティは、現在のブラウザウィンドウの一意の識別子です。 ブラウザに2つ以上のウィンドウが存在する場合は、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:ブラウザの地理的位置を表すlatitude、longitude、およびオプションのaltitudeプロパティを含むプロパティリスト。 例:

    (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

  • name:ユーザーに割り当てられたWebDriver接続の名前。 この値は、接続リストによるWebDriver接続の作成時に指定するか、接続を開くのにWebConnectコマンドまたはWebDriver()関数を使用する場合はnameプロパティを使用して指定できます。 WebDriver接続を開いた後で本プロパティを変更することはできません。
  • browser:接続リストによるWebDriver接続の作成時に指定するブラウザ名か、WebDriver接続を開くのにWebConnectコマンドまたはWebDriver()関数を使用する場合はbrowserプロパティを使用して指定するブラウザ名。 WebDriver接続を開いた後で本プロパティを変更することはできません。
  • host:WebDriverサーバーを実行するホストマシーン。 本プロパティを変更することはできません。

port:WebDriver接続がサーバーと通信するのに利用するポートの番号。 本プロパティを変更することはできません。

WebConnectコマンド

挙動:本コマンドは、ウェブブラウザへの接続を作成します。 接続は、サーバーのIPアドレスとブラウザ名を指定して特定するか、定義済みのWebDriver接続をEggplant Functional接続リストから名前で呼び出すことができます。

WebConnectコマンドEggplant Functionalの実行時に接続リストに一致するエントリが存在しない場合は、本接続に関して、接続リストに一時的なエントリを追加します。 そのブラウザへの接続が既に開いている場合は、アクティブなWebDriver接続が作成されます。

  • パラメータ:WebConnectコマンドにおいて、以下のパラメータを利用できます。
  • hostサーバーのIPアドレスもしくはホスト名、またはEggplant Functional接続リスト内のWebDriver接続の名前。 ホストプロパティは通常、必須です。 ただし、ホストを指定しない場合は、本コマンドは現在のVNCまたはRDP SUT接続と同じホストへの接続を試みます。 SUT接続が利用できない場合は、本コマンドはホストの指定なしでは失敗します。
  • browser(必須)接続したいブラウザの名前。

    注:Seleniumサーバー2.0によってサポートされる任意のブラウザを利用できます。 通常、使用するブラウザの種類ごとにドライバをインストールする必要があります。 Seleniumサーバーとブラウザのドライバのインストールに関する情報は、 Eggplant FunctionalによるSelenium WebDriverテストを参照してください。

  • url(オプション)ブラウザ内で開きたいウェブページのURL。
  • port (オプション、デフォルトでは4444)接続に利用するポートの番号。
  • name:(オプション)本接続の参照時に利用する名前。 本プロパティを指定すると、この名前が接続リストに表示されます。

desiredCapabilities(オプション)プロパティリストを利用して、WebDriver接続の必要な機能を要求します。これにより、ウェブブラウザの挙動や外観に影響を及ぼすことができます。 利用可能な値は次の通りです。acceptSslCertsapplicationCacheEnabledbrowserConnectionEnabledcssSelectorsEnableddatabaseEnabledhandlesAlertsjavascriptEnabledlocationContextEnablednativeEventsrotatabletakesScreenShotおよびwebStorageEnabled

いずれのdesiredCapabilitiesの値もブーリアンとしてtrueまたはfalseに設定でき、必要に応じて必要な数の値を使用できます。 ただし、WebDriverは与えられたリクエストを考慮しない場合があります。

構文:

WebConnect host: "ホストアドレス", browser: "ブラウザ名"{, url: "ページURL"}, port: "ポート", {name: "接続名"}{, capabilityName: (desiredCapabilityName: "value"{, desiredCapabilityName2: "value", ...} ) }

例:

WebConnect host:"192.168.199.132", browser: "chrome", port: "4444", name: "Connection2", url: "http://testplant.com"

例:

WebConnect "WindowsChrome" // 接続リスト内で事前に構成されている「WindowsChrome」という名前のWebDriver接続に接続します

例:

WebConnect host: "localhost", browser: "chrome", desiredCapabilities: (webStorageEnabled: YES, javascriptEnabled: YES, cssSelectorsEnabled: YES) // desiredCapabilitiesプロパティを利用して、WebDriver接続の特定の機能を要求します

例:

set BrowserFeatures to (webStorageEnabled: YES, javascriptEnabled: YES, cssSelectorsEnabled: YES) // desiredCapabilitiesに関するプロパティリストを変数に入れます

WebConnect host: "localhost", browser: "chrome", desiredCapabilities: BrowserFeatures // 変数を利用してdesiredCapabilitiesプロパティを設定します

OpenWebConnections()関数

WebDisconnectコマンド

挙動:本コマンドは、指定されたWebDriver接続を切断します。

パラメータ:なし、接続名、またはAll。 パラメータを全く指定しない場合は、アクティブなWebDriver接続が切断されます。 特定の接続を閉じるにはWebDisconnectを特定の接続名と一緒に使用し、すべてのアクティブ接続を閉じるにはAllを使用します。

構文:

WebDisconnect {webDriver名 | All}

例:

WebDisconnect // アクティブなWebDriver接続を切断します

例:

WebDisconnect All // すべてのWebDriver接続を切断します

例:

webDisconnect "Connection2"// 「Connection2」という名前のWebDriver接続を切断します

OpenWebConnections()関数

WebDriver()関数

挙動:本関数は、WebDriverConnectionオブジェクトを返します。 WebDriver()関数を使用してオブジェクトのプロパティにアクセスしたり、同プロパティを設定することができます。 本関数はデフォルトで、アクティブなWebDriver接続に関するプロパティを返します(アクティブな接続が存在する場合)。 開いている別の接続(利用可能な場合)に切り替えたり、新しい接続を開くのに、以下に指定するパラメータを使用できます。

新しい接続を開いたり、アクティブな接続を切り替えたりする場合は、WebDriver()関数はWebConnectコマンドと同じように振る舞います。

  • パラメータ:WebDriver()関数において、以下のパラメータを利用できます。
  • hostサーバーのIPアドレスもしくはホスト名、またはEggplant Functional接続リスト内のWebDriver接続の名前。 ホストプロパティは通常、必須です。 ただし、ホストを指定しない場合は、本関数は現在のVNCまたはRDP SUT接続と同じホストへの接続を試みます。 SUT接続が利用できない場合は、本関数はホストの指定なしでは失敗します。
  • browser接続したいブラウザの名前。 (必須)
  • url(オプション)ブラウザ内で開きたいウェブページのURL。 (オプション)
  • port (オプション、デフォルトでは4444)接続に利用するポートの番号。
  • name:(オプション)本接続の参照時に利用する名前。 本プロパティを指定すると、この名前が接続リストに表示されます。
  • desiredCapabilities(オプション)プロパティリストを利用して、WebDriver接続の必要な機能を要求します。これにより、ウェブブラウザの挙動や外観に影響を及ぼすことができます。 利用可能な値は次の通りです。acceptSslCertsapplicationCacheEnabledbrowserConnectionEnabledcssSelectorsEnableddatabaseEnabledhandlesAlertsjavascriptEnabledlocationContextEnablednativeEventsrotatabletakesScreenShotおよびwebStorageEnabled

    いずれのdesiredCapabilitiesの値もブーリアンとしてtrueまたはfalseに設定でき、必要に応じて必要な数の値を使用できます。 ただし、WebDriverは与えられたリクエストを考慮しない場合があります。

  • 構文:
  • WebDriver (host: ホストアドレス, browser: "ブラウザ名", url: "ページURL", port: ポート, {name: "接続名"} {, capabilityName: (desiredCapabilityName: "value"{, desiredCapabilityName2: "value", ...} ))
  • 戻り値:パラメータなしでWebDriver()関数を呼び出す場合は、本関数はアクティブなWebDriver接続のWebDriverConnectionオブジェクトを返し、アクティブな接続が存在しない場合は何の情報も返しません。
  • WebDriver()関数を利用してWebDriver接続を開く場合は、本関数は新たに作成されたWebDriver接続に関するWebDriverConnectionオブジェクトを返します。
  • 例:

put webDriver() // アクティブなWebDriverConnectionオブジェクトが返されます

例:

put webDriver(host:"192.168.120.128",browser:"chrome") // 指定したプロパティを含むWebDriverConnectionオブジェクトが作成され、返されます

例:

put WebDriver() into driver //アクティブなWebDriver接続が存在する場合は、変数「driver」にそのオブジェクトを格納します

例:

set driver to WebDriver() //アクティブなWebDriver接続が存在する場合は、変数「driver」にそのオブジェクトを格納します

例:

set driver to WebDriver(host:"192.168.199.132", browser: "chrome", name: "Connection2") //指定したプロパティを使用して新たにWebDriverConnectionオブジェクトを作成し、変数「driver」に結果のオブジェクトを格納します

例:

log the WebDriver's activeElement's name // 名前属性が利用できる場合は、アクティブな要素のWebElementオブジェクトの名前属性を記録します

例:

webconnect "WindowsChrome"

set the WebDriver's windowsize to "max"

set the WebDriver's url to "https://www.chase.com"

assert that the webdriver's title contains "Credit Card, Mortgage, Auto, Banking Services"

waitFor 20, "WelcomeMessage" // VNCまたはRDP接続による画像検索を利用して、画像が画面上に表示されるか確認します

例:

set the WebDriver's geoLocation to (latitude:42.9634,longitude:-85.6681)

set the WebDriver's url to "http://www.weather.com"

Click (WebXPath:"//span[@class='icon icon-font iconset-ui icon-settings']")

ExecuteJavaScript "scroll(0,400)" // DOM内で一部のオブジェクトを強制的にアクセス可能にするために、本ウェブサイト上でページのスクロールダウンが必要とされます

WaitFor 20, (WebXPath:"//strong[@data-ng-bind='vm.formatLocationName(location)']")

assert that the FoundWebElement's text is "Grand Rapids, MI"

関連:

WebConnectコマンド

WebDisconnectコマンド

OpenWebConnections()関数

GoBackコマンド

挙動:本コマンドは、履歴を遡って前のページに戻るようにブラウザに命令します。

パラメータ:オプションのWebDriver接続。 GoBackコマンドは、デフォルトでアクティブ接続になります。 WebDriver接続パラメータを利用すると、異なる接続に切り替えることができます。 Eggplant Functional接続リスト内に表示される名前、またはIPアドレスもしくはホスト名により、接続を指定できます。

構文:

goBack {"webDriver名"}

例:

GoForwardコマンド

挙動:本コマンドは、履歴を進んで次のページに移動するようにブラウザに命令します。

パラメータ:オプションのWebDriver接続。 GoForwardコマンドは、デフォルトでアクティブ接続になります。 WebDriver接続パラメータを利用すると、異なる接続に切り替えることができます。 Eggplant Functional接続リスト内に表示される名前、またはIPアドレスもしくはホスト名により、接続を指定できます。

構文:

goForward {"webDriver名"}

例:

goForward // GoForwardコマンドは通常、アクティブ接続で使用されます。

例:

goForward "WindowsChrome" // 本例により、WebDriver接続をオプションで指定できることが示されます。

Refreshコマンド

挙動:本コマンドは、現在のページをリロードするようブラウザに命令します。

パラメータ:オプションのWebDriver接続。 Refreshコマンドは、デフォルトでアクティブ接続になります。 WebDriver接続パラメータを利用すると、異なる接続に切り替えることができます。 Eggplant Functional接続リスト内に表示される名前、またはIPアドレスもしくはホスト名により、接続を指定できます。

構文:

Refresh {"webDriver名"}

例:

Refresh // Refreshコマンドは通常、アクティブ接続で使用されます。

例:

Refresh "abc" // 本例により、WebDriver接続をオプションで指定できることが示されます。

例:

set myOpenConnections to OpenWebConnections() // 開いているすべてのWebDriverConnectionオブジェクトのリストを変数「myOpenConnections」に格納します

repeat with each myConnection of myOpenConnections // 各オブジェクトを反復処理します

Refresh myConnection // 関連するブラウザをリフレッシュします

end repeat

Submitコマンド

挙動:本コマンドは、指定したWebElementを含むフォームやアクティブな要素(何も指定していない場合)を提出します。

注:Submitコマンドの使用は、フォーム提出時の作用が見込まれているカスタムのJavaScriptをバイパスするため、通常は推奨されません。 したがって、フォームの提出を目的とするボタンなどの要素を特定し、その要素上でClickコマンドを実行することが最良の方法として推奨されます。

パラメータ:なし、またはWebElement識別子。 WebElementを指定しない場合は、本コマンドはアクティブな要素上で作用します。

構文:

Submit {識別子タイプ: "value"}

例:

Submit // アクティブなWebElementのコンテンツが提出されます

例:

put findElement(webtagname: "textarea") into element // WebElementの場所を変数に入れます

Sendkeys element, "Fire bad, tree pretty." // 変数を利用してWebElementにアクセスし、テキストを入力します

Submit element // 変数を利用してWebElementにアクセスし、フォームを提出します

WebScreenshotコマンド

挙動:本コマンドはブラウザコンテンツのスクリーンショットを取得し、指定されたファイル名やフルファイルパスに従ってそのスクリーンショットを保存します。

パラメータ:必須のファイル名(希望する保存場所のフルファイルパスをオプションで組み込むことができます)。 WebScreenshotをスクリプト実行の一部として実行し、かつ所定のファイル名がフルパスでない場合は、本コマンドは現在のスクリプトの結果ディレクトリ内にスクリーンショットを保存します。 ファイル名パラメータにファイルパスが含まれず、かつWebScreenshotを選択的に実行する場合は、スクリーンショットはデフォルトのドキュメントディレクトリに保存されます。

WebScreenshotコマンドは、WebDriverConnectionオブジェクトパラメータを任意で利用し、異なる接続に切り替えることができます。 本コマンドは、デフォルトでアクティブ接続になります。

構文:

WebScreenshot {"webDriver名",} "ファイル名"

例:

WebScreenshot "WelcomeScreen" // アクティブなWebDriverConnectionのWebDriverスクリーンショットをキャプチャし、「WelcomeScreen」という名前を付けて保存します

例:

WebScreenshot "<path>/myscreenshot" // WebScreenshotコマンドは通常、アクティブな接続で使用されます。

例:

webScreenshot "C:\Users\Carrie\Desktop\MainPage" // スクリーンショットに「MainPage」という名前を付けてデスクトップ上に保存します

例:

WebScreenshot "myWebDriverConnectionName", "<path>/myscreenshot" // 本例により、WebDriver接続をオプションで指定できることが示されます。

ExecuteJavaScriptコマンド

挙動:本コマンドは、指定されたJavaScriptコードを現在の文脈において実行するようブラウザに命令します。

パラメータ:実行したいJavaScriptコード(唯一の必須パラメータ)。 オプションで、JavaScriptに1つ以上のパラメータ値を渡すことができます。 また、JavaScriptコードによって返される値を変数に入れることで、その値を使用できます。

ExecuteJavaScriptコマンドは、WebDriverConnectionオブジェクトパラメータを任意で利用し、異なる接続に切り替えることができます。 本コマンドは、デフォルトでアクティブ接続になります。

構文:

ExecuteJavaScript {"webDriver名",} "javaScriptコマンド"

ExecuteJavaScript("javaScriptコマンド"{, オプションパラメータ1, オプションパラメータ2}) {into 戻り値}

例:

ExecuteJavaScript "alert('openConnection')" // 指定されたJavaScriptを実行するようブラウザに命令します

例:

ExecuteJavaScript "Connection2","alert('openConnection')" // WebDriver接続をオプションで指定できることが示されます

例:

ExecuteJavaScript "scroll(0,200)" // 指令された量だけブラウザをスクロールします

例:

put executejavascript("return document.getElementsByClassName(arguments[0]);", "gsfi lst-d-f") into myVariable // 単一のパラメータをJavaScriptコードに渡し、戻り値を変数に入れます

put myVariable // 実行したJavaScriptから返された値を出力します

OpenWebConnections()関数

挙動:本関数は、開いているすべてのWebDriver接続に関するWebDriverConnectionオブジェクトのリストを返します。

パラメータ:なし。

構文

OpenWebConnections()

例:

put the openwebconnections

例:

put openWebConnections()

例:

put the url of each item of OpenWebConnections() // 開いている各WebDriver接続のURLを表示します

例:

set myOpenConnections to the OpenWebConnections // 開いているすべてのWebDriverConnectionオブジェクトのリストを変数「myOpenConnections」に格納します

repeat with each myConnection of myOpenConnections // 各オブジェクトを反復処理します

Log myConnection's title // ページタイトルを記録します

end repeat

関連:

WebConnectコマンド

WebDriver()関数

WebDisconnectコマンド

例:

set myOpenConnections to the OpenWebConnections // 開いているすべてのWebDriverConnectionオブジェクトのリストを変数「myOpenConnections」に格納します

repeat with each myConnection of myOpenConnections // 各オブジェクトを反復処理します

Log myConnection's title // ページタイトルを記録します

end repeat

関連:

SetDeviceOrientation

 

This topic was last updated on 2月 01, 2019, at 11:13:23 午前.

Eggplant icon Eggplant.io | Documentation Home | User Forums | Support | Copyright © 2019 Eggplant