Page tree

Skip to end of metadata
Go to start of metadata

このセクションの内容:

概要

Selenium は、各ブラウザーがネイティブにサポートする自動化を使用して、ブラウザーを直接的に呼び出します。以下のものを提供します:  

  • ユーザーのアクションをより忠実に記録したシナリオ
  • Safari のサポート
  • HTML 5 のサポート

新しく作成されるブラウザー シナリオは、デフォルトで Selenium を使用します。既存のブラウザー シナリオ (WebDriver がサポートされる前に記録されたシナリオ) も、Selenium で再生するよう構成できます (「Selenium での再生用に既存のブラウザー記録シナリオを再構成」の説明を参照)。

Selenium エンジンは、自動的には Xvfb を使用しませんが 、Xvfb を使用するよう手動で構成できます。Xvfb を使用すると、たとえば、Linux 上で自動化された soatestcli ジョブを使って、Selenium ブラウザー シナリオを表示せずに実行できます。詳細については「Linux 上で soatestcli を使用した WebDriver ブラウザー シナリオの実行」を参照してください。

移行の注意点

  • 従来のブラウザー記録には、Selenium エンジンではサポートされていないアクションが含まれている可能性があります。詳細については「Selenium での再生用に既存のブラウザー記録シナリオを再構成」を参照してください。
  • Selenium WebDriver エンジンは 32 ビット版の Internet Explorer を使用するため、Selenium エンジンを使用する場合、カスタムの Internet Explorer 実行モジュール パス設定 ([設定] > [ブラウザー] > [Internet Explorer の実行モジュールのパス]) は適用されません。
  • [非同期リクエストを待機] 待機条件は非推奨になりました。つまり、新たにこの条件を追加することはできませんが、シナリオを Selenium での再生用に変換するまでは、既存の条件は機能し続けます。この待機条件を [HTTP トラフィックなしの間隔を待機] 待機条件に置き換えることができます。非同期リクエストが発生するのに十分な間隔を指定してください。
  • 従来のブラウザー記録では、__No_Name_:# ウィンドウ フォーマット識別子を使用してウィンドウを識別できましたが、Selenium WebDriver では、このフォーマットはサポートされていません。このフォーマットを含むブラウザー記録を移行するには、シナリオを再実行してから開き、ドロップダウン メニューを使用して正しいウィンドウを指定します。ウィンドウ名またはウィンドウ インデックスを使用してウィンドウを識別できます。

非推奨のコマンド (および代替コマンド)

  • Fireevent: Selenium WebDriver はネイティブ イベントを使用してユーザーの振る舞いをエミュレートするため、不要になりました。
  • Keydown: "Shift"、 "Control" または "Alt" 値を伴うテキスト入力だけをサポートします。Selenium WebDriver はネイティブ イベントを使用してユーザーの振る舞いをエミュレートするため、他のキー修飾子は不要です。
  • Keypress: Selenium WebDriver はネイティブ イベントを使用してユーザーの振る舞いをエミュレートするため、不要になりました。
  • Selenium WebDriver はネイティブ イベントを使用してユーザーの振る舞いをエミュレートするため、不要になりました。"Shift"、 "Control" または "Alt" 値を伴うテキスト入力だけをサポートします。Selenium WebDriver はネイティブ イベントを使用してユーザーの振る舞いをエミュレートするため、他のキー修飾子は不要です。
  • Mousedown: Selenium WebDriver はネイティブ イベントを使用してユーザーの振る舞いをエミュレートするため、不要になりました。
  • Mousemove: Selenium WebDriver はネイティブ イベントを使用してユーザーの振る舞いをエミュレートするため、不要になりました。
  • Mouseover: Selenium WebDriver はネイティブ イベントを使用してユーザーの振る舞いをエミュレートするため、不要になりました。
  • Mouseup: Selenium WebDriver はネイティブ イベントを使用してユーザーの振る舞いをエミュレートするため、不要になりました。
  • New Browser: 再生中に 2 つ目のブラウザーを起動することはできなくなりました。
  • Other: Other および UserCustomizableOptions.js を使用したカスタム コマンドを作成することはできなくなりました。
  • Type (フォーカスなし): Selenium WebDriver はネイティブ イベントを使用してユーザーの振る舞いをエミュレートするため、不要になりました。
  • Type Password (フォーカスなし): Selenium WebDriver はネイティブ イベントを使用してユーザーの振る舞いをエミュレートするため、不要になりました。

非表示の要素を操作するアクションの移行

レガシー エンジンは非表示の要素を操作できます。しかし、Selenium エンジンは実際のユーザーをシミュレートするため、表示されている要素しか操作できません。そのため、既存のシナリオが非表示の要素を操作している場合、Selenium エンジンでシナリオを正しく実行するには、非表示の要素を見えるようにする中間的なステップの追加が必要な可能性があります。これを実現する最も一般的な方法は、非表示の要素を表示する要素をクリックすることです。

「Unable to perform user action: Element is not currently visible 」のようなメッセージが表示された場合、シナリオの移行が必要である可能性があります (アプリケーションが期待どおり動作していないことを表す場合もあります)。 

相対 URL を使用する検証の移行

href または src 属性を検証する際、レガシー ドライバーは URL の相対パスを抽出します (ロケーターに相対パスが指定されている場合)。しかし Selenium エンジンは、相対パスではなく絶対パスを抽出します。たとえば、http://localhost:8080 ドメインのブラウザーのコンテンツに <a href=” xyz.html”> があるとします。検証は次のように行われます。

  • レガシー: xyz.html (リテラルな href 属性)
  • Selenium: http://localhost:8080/sample/xyz.html (絶対パス)

「Validation failed for property "href": Actual value found on the page "http://localhost:8080/sample/xyz.html" must be equal to expected value "xyz.html"」というエラー メッセージが表示された場合、シナリオの移行が必要です。 

シナリオを移行するには、期待値を変更します。たとえば、次のような既存のシナリオがあるとします。 



これを次のように変更します。


非推奨になったスクリプト ダイアログ アクションの移行

ダイアログを処理する以下のアクションは、引き続き使用することはできますが、記録中に作成することはできません。

  • Answeronnextprompt
  • Assertalert
  • Assertprompt
  • Assertconfirmation
  • Choosecancelonnextconfirmation

新しく記録すると、これらのアクションに相当する Selenium コマンド (Accept Script Dialog、Dismiss Script Dialog、Type into Script Dialog等) が使用されます。 

IE、Chrome、Firefox でのアクションの再生を移行

従来のスクリプト ダイアログ アクション (例: Assertalert、Assertconfirmation、Assertprompt) が使用されているシナリオを Selenium エンジンで再生した場合、[スクリプト ダイアログを待機] は適用されません。レガシー エンジンと Selenium エンジンの違いのため、レガシー アクションを Selenium で再生した場合、(テストに [スクリプト ダイアログを待機] 条件が追加されていても) 遅れて開かれるダイアログに対しては、常に「No alert present」というエラーが発生して失敗します。  

Selenium エンジンを使用して新しいスクリプト ダイアログ アクション (Accept Script Dialog、Dismiss Script Dialog) を実行した場合、[スクリプト ダイアログを待機] 条件は期待どおり動作します。 

新しいスクリプト ダイアログ アクションに移行するには、次の操作を行います。

  • アラートの更新: Assertalert を Accept Script Dialog に置き換えます。
  • 確認の更新: レガシー シナリオには Assertconfirmation ユーザー アクションが含まれます。また、Choosecancelonnextconfirmation アクションが含まれる場合もあります (ユーザーが [キャンセル] をクリックすることが期待される場合)。そのようなシナリオを移行する場合、Choosecancelonnextconfirmation ユーザー アクションを削除し、Assertconfirmation アクションを Accept Script Dialog または Dismiss Script Dialog アクションに置き換えます (どちらに置き換えるかは、ダイアログでユーザーが [OK] または [キャンセル] のどちらをクリックすることが期待されているかによります)。
  • プロンプトの更新: レガシー シナリオには Assertprompt ユーザー アクションが含まれます。また、Answeronnextprompt アクションが含まれる場合もあります (ユーザーがテキストを入力することが期待される場合)。そのようなシナリオを移行する場合、Assertprompt アクションを Accept Script Dialog または Dismiss Script Dialog アクションに置き換えます (どちらに置き換えるかは、ダイアログでユーザーが [OK] または [キャンセル] のどちらをクリックすることが期待されているかによります)。レガシー シナリオに Answeronnextprompt が含まれる場合、そのユーザー アクションを削除し、Accept/Dismiss Script Dialog ユーザー アクションの直前に Type into Script Dialog アクションを追加します。
  • 連結/アクションの更新: アラートをトリガーするアクション (‘alert’のクリックなど) に連結された Browser Validation ツールまたは Wait for Asynchronous Requests は、アクションの後の Accept Script Dialog/Dismiss Script Dialog に連結しなおす必要があります。

Safari での再生用にアクションを移行

アラートをトリガーするアクションに連結された Browser Validation ツールを Selenium エンジンで再生すると、待機条件がないために正しく動作しない場合があります (従来のスクリプト ダイアログ アクションを使用するシナリオを Seleniium エンジンで再生した場合、[スクリプト ダイアログを待機] が適用されないため)。この場合、Browser Validation ツールを次のアクションに移動します。

Selenium の既知のバグおよび問題点

互換性の問題

  • Chrome 28+ および Selenium の chromedriver は RHEL/!CentOS 6.x と互換性がありません。CentOS 7.0 (64-bit) では動作しますが、警告がレポートされます。この警告が表示されないようにするには、コマンドラインで setsebool -P unconfined_chrome_sandbox_transition 0 を指定します。

Selenium のスクリプト ダイアログの問題

  • Selenium WebDriver でスクリプト ダイアログの [OK] をクリックすると、ランダムに失敗します。このエラーは、テストでダイアログを開き、[スクリプト ダイアログを待機] が指定されたタイムアウト時間内 (デフォルトでは 10 秒) にスクリプト ダイアログが存在しないというエラーをレポートした場合に発生します。この問題を解決するには、待機時間を増やします。
  • Chrome では、Selenium は Navigate、Go Back または Go Forward アクションによって開かれる onBeforeUnload ダイアログを操作できません。
  • Chrome および Internet Explorer では、Selenium は、ブラウザー ウィンドウが 1 つだけ開かれている場合に「Close」を呼び出したときに開かれる onBeforeUnload ダイアログを操作できません。
  • Selenium WebDriver は、新しいウィンドウを開いたときに表示されるアラートの [OK] をクリックできません。
  • Chrome または Safari 用の SOAtest の Selenium WebDriver フレームワークは、現時点ではモーダル ダイアログ (JavaScript 関数 "showModalDialog" を使用して開かれるダイアログ) をサポートしていません。この機能に依存する Web アプリケーションは、Parasoft のネイティブ エンジンを使用するか、Internet Explorer または Firefox を使用する必要があります。

その他の問題点

  • Selenium WebDriver の問題のため、"click" ユーザー アクションのキー修飾子 ("Shift"、"Ctrl" および "Alt") は Chrome でだけサポートされます。https://code.google.com/p/selenium/issues/detail?id=4385 を参照してください。
  • 1 つのユーザー アクションで複数のウィンドウが開かれる場合、Chrome および Internet Explorer では、Selenium WebDriver がウィンドウ ハンドラーを誤った順序で返す可能性があります。この問題は、ウィンドウに名前がない場合にだけ発生します。回避策は、名前付きのウィンドウを使用することです。
  • Safari および Internet Explorer で、エリア要素をクリックできない。https://code.google.com/p/selenium/issues/detail?id=2354 を参照してください。
  • Internet Explorer では、アプリケーションが要素のデフォルトの "fireEvent" 実装を新しい実装でオーバーライドしている場合、Selenium は要素に対してアクションを実行するときに新しい実装をトリガーします。これはブラウザーのデフォルトの動作とは異なります。ブラウザーは、デフォルトでは、Web アプリケーションによって "fireEvent" メソッドの実装が変更されていても、デフォルトの "fireEvent" の実装が呼び出されます。
  • Selenium はヘッドレス モードでのシナリオ再生をサポートしません。ヘッドレス モードを選択した場合でも、シナリオは可視モードで再生されます。

Safari 固有の問題点

サポートされていないコマンド

以下のコマンドは、Safari の Selenium WebDriver ではサポートされていません。これは、SafariDriver (https://code.google.com/p/selenium/issues/detail?id=4136) の制限によるものです。

  • DoubleClick
  • Dragdrop
  • Go Back
  • Go Forward
  • Hover
  • Keydown
  • Keyup
  • Right-click

サポートされていない機能

Selenium の制限事項により、SOAtest の以下の機能に影響があります。

  • シナリオ再生時にトラフィックが記録されません。
  • NTLM/ダイジェスト/ベーシック認証はサポートされていません。
  • [負荷テスト用に構成/検証] はサポートされていません。
  • HTTP トラフィックへのツールの連結はサポートされていません。
  • [HTTP トラフィックなしの間隔を待機] 待機条件は、ブラウザーまたはサーバーによってトラフィックが送信されたかどうかにかかわらず、指定された時間が経過すると常に成功します。
  • [非同期リクエストを待機] 待機条件は動作しません。
  • 信頼されていない証明書を使用するサイトはサポートされていません。

その他の問題点

  • Safari 7+ では、SafariDriver は実行のたびにブラウザー拡張を自動的にインストールしません。なぜなら、ブラウザー拡張をインストールするにはキーチェーン認証が必要だからです。回避策としては、手動でブラウザー拡張をインストールしてください。
  • Safari 7.10 (2014 年 9 月中旬にリリース) では、Safari の設定画面で WebDriver プラグインを有効化する必要があります。
  • Safari では、[ページの読み込みを待機] タイムアウトは navigation アクションでだけサポートされています。WebDriver の pageloadTimeout はサポートされていません。
  • Safari では、常にアラートが抑制され、例外としてレポートされません (ユーザーは「unexpected script dialog」を受け取りません)。既存の Accept Script Dialog/Dismiss Script Dialog および Type into Script Dialog ツールは常に成功します。Accept Script Dialog または Dismiss Script Dialog は、確認ダイアログに対しては意図された効力を持ち、Type into Script Dialog は、プロンプト ダイアログに対しては意図された効力を持ちます。ただし、ダイアログの表示は抑制されます。
  • ファイル入力の値の設定はサポートされていません。
  • (JavaScript を使用して) テキスト入力要素にフォーカスを移動し、要素の値を変更し、別の要素にフォーカスを移動した場合、"change" イベントは発生しません。
  • 「Block pop-up windows」が有効化されている Safari でシナリオを再生する場合、window.open() を使用してウィンドウを開くと失敗します。「Block pop-up windows」を無効化することで、この問題を回避できます。
  • Safari がフラグメントと同じ URI をリクエストするよう設定されていると、WebDriver がハングします。
  • リッチ テキスト エディターはサポートされていません。レガシー エンジンでもサポートされていません。
  • switchTo().window() を呼び出すと、Safari ブラウザーは実際に GUI でウィンドウを切り替えます。この動作によって混乱が生じる場合があります。

Selenium WebDriver を使用した既存のブラウザー記録シナリオの実行

Selenium WebDriver を使用して既存のブラウザー記録シナリオ (9.8 より前のバージョンで作成) を実行する場合、以下の 2 つの選択肢があります。

  • Selenium WebDriver を使用するよう再構成する - これには、テスト スイートの構成の変更も含まれます。
  • 事前の準備を行わずに WebDriver でシナリオを実行する - この場合、テスト スイートの構成を変更する必要はありません。テスト コンフィギュレーション レベルで再生エンジンの設定が上書きされます。

既存のシナリオには、非推奨になったアクションが含まれている可能性があることに注意してください。その場合、[Selenium を使用して再生する] オプションを選択すると、警告ダイアログが表示されます。このダイアログが表示された場合、シナリオを確認し、必要に応じてアクションを変更してください。詳細については「Selenium の既知のバグおよび問題点」を参照してください。詳細については、「Selenium Known Bugs and Issues」 を参照してください。また、既存のシナリオが beforeunload イベントをトリガーする場合、新しいユーザー アクション (Accept Script Dialog、Dismiss Script Dialog) を追加して、表示されるダイアログに対処する必要があります。

Selenium での再生用に既存のブラウザー記録シナリオを再構成

Selenium WebDriver エンジンを使用して既存の Web シナリオを 実行するには、次の操作を行います。

  1. 変換するシナリオのテスト スイートを開きます。
  2. [ブラウザー再生オプション] タブを開きます。[再生テスト フレームワーク] の [Selenium を使用して再生する] をオンにします。
     

Selenium を使用するテスト コンフィギュレーションの実行

デフォルトでは、テスト コンフィギュレーションはテスト スイート レベルで指定された再生エンジンを使用して Web シナリオを再生するよう設定されています。これによって、Selenium を使用するよう設定されたテストと、レガシー エンジンを使用するよう設定されたテストを、1 つのテスト コンフィギュレーションで実行できます。 

しかし、テスト スイートの再生エンジンの設定を上書きしたいケースもあるかもしれません。たとえば、既存のテスト シナリオを Selenium 用に再構成する前に、Selenium での動作を確認したい場合などです。そのような場合、任意のテスト コンフィギュレーションを Selenium WebDriver エンジンを使用するよう構成して実行できます。このオプションは、[実行] > [機能] タブで設定します。

このコンフィギュレーションを使用して実行したすべてのテストは、テスト シナリオ レベルでのエンジンの設定にかかわらず、Selenium WebDriver を使用して再生されます。

Selenium の代わりに従来のネイティブ ドライバーを使用

特定のシナリオで従来のネイティブ ドライバーを使用する場合は、次の操作を行います。

  1. レガシー エンジンを使用するシナリオのテスト スイートを開きます。
  2. [ブラウザー再生オプション] タブを開きます。[再生テスト フレームワーク] の [Parasoft ネイティブ ドライバー (レガシー)] をオンにします。

     

あるいは、テスト シナリオ レベルでのエンジンの設定にかかわらず、ネイティブ ドライバーで Web シナリオを実行するテスト コンフィギュレーションを作成して適用します。  このオプションは、[実行] > [機能] タブで設定します。

新しいバージョンの Selenium WebDriver に手動でアップグレード

SOAtest リリースに組み込まれる前に、新しいバージョンの Selenium WebDriver をアップグレードできます。 ただし、SOAtest に同梱されたバージョンよりも新しいバージョンの Selenium WebDriver を使用することは、Parasoft によって公式にサポートされておらず、検証もされていません。結果として、新しいバージョンの Selenium WebDriver を実行すると、互換性の問題が発生する場合があります。

アップグレードを行うには、次の操作を行います。

  1. Selenium クライアントをアップグレードします (すると、Firefox での再生用の WebDriver サポートもアップグレードされます)。このステップは、どのブラウザーを使用して再生する場合も必須です。詳細については下記を参照してください。詳細については「Upgrading Selenium Client Libraries (Includes Updating WebDriver Support for Firefox)」を参照してください。
  2. 使用するブラウザー用 (Chrome、Internet Explorer、および/または Safari) の WebDriver 再生サポートをアップグレードします。詳細については下記を参照してください。

Selenium クライアント ライブラリのアップグレード (Firefox 向け WebDriver サポートの更新を含む)

次の手順は、どのブラウザーを使用して再生を行うかにかかわらず、Selenium WebDrive をアップグレードする際は常に最初に行います。Firefox 向け WebDriver サポートは、このプロセスの一部としてアップグレードされます。 

  1. http://search.maven.org に移動します。
  2. maven.org から以下を検索してダウンロードします (それぞれ、[jar] ダウンロード リンクを使用します)。
    • selenium-api-{x.y.z}.jar
    • selenium-chrome-driver-{x.y.z}.jar
    • selenium-firefox-driver-{x.y.z}.jar
    • selenium-ie-driver-{x.y.z}.jar
    • selenium-edge-driver- {x.y.z}.jar
    • selenium-java-{x.y.z}.jar
    • selenium-remote-driver-{x.y.z}.jar
    • selenium-safari-driver-{x.y.z}.jar
    • selenium-support-{x.y.z}.jar



  3. ダウンロードした jar ファイルのバージョン番号 ({x.y.x}) を削除します。たとえば、selenium-api-2.45.0.jar を selenium-api.jar に変更します。
  4. SOAtest テストのインストール ディレクトリで、update.bat スクリプト (Windows の場合) または update スクリプト (Linux および Mac の場合) に -patch 引数および前のステップでダウンロードして名前を変更した各 jar へのパスを指定します。このスクリプトを実行すると、現在インストールされているバージョンが patch 引数で指定されたファイルに置き換えられます。また、置き換えられたファイルは、.bak という拡張子を付加してインストール ディレクトリにバックアップされます。
    • Windows:  update.bat –patch /path/to/[name_of_file].jar
    • Linux または Mac: ./update –patch /path/to/[name_of_file].jarMac のバージョンによっては、手動で Selenium ドライバーをコピーする必要があります。

たとえば、Windows で %DOWNLOADS% ディレクトリにファイルをダウンロードし、スクリプトを実行して selenium-java.jar ファイルをアップグレードすると、次のように出力されます。

c:\Program Files\Parasoft\SOAtest\9.9>update -patch %DOWNLOADS%\selenium-java.jar INFO: Patching file: C:\Program Files\Parasoft\SOAtest\9.9\eclipse\plugins\com.parasoft.xtest.libs.web_9.9.0.20141024\root\lib-java\org.seleniumhq.selenium\selenium-java.jar Update completed successfully


上のステップが完了したら、Firefox アドオンのページを開き、バージョン番号をチェックすることで、Selenium WebDriver for Firefox がアップグレードされたことを確認できます。

Chrome 向け WebDriver サポートのアップグレード (ChromeDriver)

Chrome 向け WebDriver サポートをアップグレードするには、次の手順に従って ChromeDriver を更新します。

  1. まだ Selenium クライアント ライブラリをアップグレードしていない場合は、「Selenium クライアント ライブラリのアップグレード (Firefox 向け WebDriver サポートの更新を含む)」 の手順に従ってアップグレードします。
  2. 次の ChromeDriver ダウンロード ページに移動します。 http://chromedriver.storage.googleapis.com/index.html
  3. 最新のリリースをダウンロードします ([ LATEST_RELEASE] リンクをクリックすると、最新のバージョンを参照できます)。
  4. アーキテクチャに合った ChromeDriver の .zip をダウンロードします。
    • Windows 64-bit and 32-bit: chromedriver_win32.zip
    • Mac 64-bit and 32-bit: chromedriver_mac32.zip
    • Linux 64-bit: chromedriver_linux64.zip
    • Linux 32-bit: chromedriver_linux32.zip
  5. .zip ファイルを解凍して chromedriver.exe を取得します。
  6. SOAtest テストのインストール ディレクトリで、update.bat スクリプト (Windows の場合) または update スクリプト (Linux および Mac の場合) に -patch 引数および chromedriver.exe ファイルへのパスを指定します。このスクリプトを実行すると、現在インストールされているバージョンが patch 引数で指定されたファイルに置き換えられます。また、置き換えられたファイルは、.bak という拡張子を付加してインストールディレクトリにバックアップされます。
    • Windows: update.bat –patch /path/to/chromedriver.exe
    • Linux または Mac: ./update –patch /path/to/chromedriver

Internet Explorer 向け WebDriver サポートのアップグレード (InternetExplorerDriver)

Internet Explorer 向け WebDriver サポートをアップグレードするには、次の手順に従って InternetExplorerDriver を更新します。

  1. まだ Selenium クライアント ライブラリをアップグレードしていない場合は、「Selenium クライアント ライブラリのアップグレード (Firefox 向け WebDriver サポートの更新を含む)」 の手順に従ってアップグレードします。
  2. Selenium ダウンロード ページ (http://www.seleniumhq.org/download/) に移動し、[Internet Explorer Driver Server] セクションの [32 bit Windows IE] 版をダウンロードします (64 ビット版の Windows を使用している場合でも)。
  3. .zip ファイルを解凍して IEDriverServer.exe ファイルを取得します。
  4. SOAtest テストのインストール ディレクトリで、update.bat スクリプト (Windows の場合) または update スクリプト (Linux および Mac の場合) に -patch 引数およびダウンロードした IEDriverServer.exe ファイルへのパスを指定します (例: update.bat -patch /path/to/IEDriverServer.exe)。このスクリプトを実行すると、現在インストールされているバージョンが patch 引数で指定されたファイルに置き換えられます。また、置き換えられたファイルは、.bak という拡張子を付加してインストールディレクトリにバックアップされます。

これで、SOAtest は新しいバージョンの InternetExplorerDriver を使用して再生を行うようになります。

Safari 向け WebDriver サポートのアップグレード (SafariDriver)

Selenium の SafariDriver は、Safari 10 以降で非推奨です。最新バージョンの Safari にアップグレードし、Apple の SafariDriver を使用してください。Safari をアップグレードできない場合、最新の Safari WebDriver 拡張をダウンロードしてインストールできます。以下の操作を行います。

  1. Safari ブラウザーを開き、Selenium ダウンロード ページ (http://www.seleniumhq.org/download/) に移動します。 
  2. SafariDriver セクションで、SafariDriver.safariextz の最新リリースをダウンロードします。



  3. ダウンロードしたファイルをクリックし、Safari WebDriver 拡張をインストールします。

Microsoft Edge 向け WebDriver サポートのアップグレード (EdgeDriver)

  1. まだ Selenium クライアント ライブラリをアップグレードしていない場合は、「Selenium クライアント ライブラリのアップグレード (Firefox 向け WebDriver サポートの更新を含む)」 の手順に従ってアップグレードします。
  2. Microsoft WebDriver ダウンロード ページ (https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/) に移動し、Edge のバージョンに合ったドライバーをダウンロードします (バージョン サポートの詳細については「ブラウザー サポート」を参照してください)。
  3. 次のディレクトリにドライバーを保存します。

    <SOATEST_INSTALL>\eclipse\plugins\com.parasoft.xtest.libs.web_<version>\root\browsers\webdriver\edge\x86\

Linux 上で soatestcli を使用した WebDriver ブラウザー シナリオの実行

SOAtest がブラウザー テストを実行する際、テストに使用されるブラウザー (Firefox または Chrome 等) は、別個のプロセスとして起動されます。Linux では、ブラウザー プロセスは X ディスプレイに接続する必要があります。UI から SOAtest を実行している場合は、ブラウザーは SOAtest と同じディスプレイを使用するため、この処理がシームレスに行われます。自動化されたジョブや、物理ディスプレイに接続されていない端末で soatestcli を実行している場合、Selenium WebDriver 再生エンジンを使用するブラウザー シナリオを実行するには、追加操作が必要です。 

仮想 X サーバー (Xvfb) を起動してディスプレイを作成

soatestcli を実行するマシンに Xvfb をインストールします (あるいは、SOAtest に付属の Xvfb_Linux を使用することもできますが、適切に動作させるには、オプションを調整する必要がある場合もあります。詳細については「SOAtest とは独立して動く Svfb を取得」を参照してください)。

Xvfb を使用する最も簡単な方法は、すべての SOAtest 実行で使用する 1 つのプロセスを起動することです。それには、次の操作を行います。

  1. soatestcli を実行するマシンにログインします (ssh などで)。
  2. 次のようにコマンドを実行します。
    $ nohup Xvfb :99 > /dev/null 2>&1 &

すると、ディスプレイ :99 で Xvfb が開始します。  すべてのログイン情報は破棄されます (/dev/null に送信される)。"nohup" コマンドを使用すると、ログアウトした後も Xvfb プロセスが継続して実行されます。

マシンを再起動するたびに、soatestcli を実行する前に Xvfb プロセスを起動する必要があることに注意してください。手動での起動を避けるには、必要に応じて Xvfb の起動と停止をスクリプト化します。

DISPLAY 環境変数の設定

ブラウザーは、DISPLAY 環境変数を参照して、使用する X ディスプレイを決定します。

環境変数の設定方法は、自動化されたジョブの実行方法の設定によって異なります。重要な点は、Xvfb 起動時に使用したのと同じ値を DISPLAY 変数に設定することです。前の例では、値は ":99" です。

shell スクリプトを作成した場合 (またはサーバーでその都度 soatestcli を実行する必要がある場合)、スクリプトで直接的に変数を設定することができます。  次は bash を使用する場合の例です。 

$ DISPLAY=:99 soatestcli ...options...

または

$ export DISPLAY=:99
$ soatestcli ...options...

Jenkins で自動化されたジョブを実行する場合、Jenkins ノードの環境を設定することで、ジョブの DISPLAY 変数を設定できます (この場合、SOAtest ジョブだけでなく、ノードで実行されるすべてのジョブに対して変数が設定されることに注意してください)。次の操作を行います。

  1. Jenkins の Web ページを表示します。
  2. ログインします。
  3. soatestcli が実行される Jenkins ノードをクリックします。
  4. クリックしてノードを構成します。
  5. [Node Properties] セクションで、DISPLAY という名前の環境変数を追加し、値を設定します (例: ":99")。
  • No labels