2

Cucumber / Watir-Webdriverを IE で問題なく使用しています。私のテストでは、フォーム フィールドに移動してデータを入力し、保存ボタンをクリックします。すべてのアクションがうまく機能します。

最近、パフォーマンス上の理由から、 Selenium Grid 2を使用して複数のマシンにテストを分散することにしました。FF と Chrome では問題なく動作しましたが、IE で問題が発生し始めました。

問題は次のとおりです。

Selenium Grid 2 を使用して IE をリモートで駆動すると、キーストローク (つまり、send_keys または .set "テキストの文字列") を送信すると、テキストはフィールドに正しく表示されますが フィールドの検証ではテキストが認識されません。

フォームを保存すると、「説明を入力してください」というエラーが表示されますが、説明はそこにあります。

watir-webdriver (および IE) を使用してローカルでテストを実行すると、これは正常に機能しますが、この問題は、テストが Selenium Grid から駆動されている場合にのみ発生します。

グリッドを使用してブラウザーをセットアップする方法は次のとおりです。

@browser = Watir::Browser.new(:remote, :url=>"http://[myhost]:4444/wd/hub", :desired_capabilities=> browser_name)
where browser_name is currently set to ie.

リモートマシンで、ノードを次のようにセットアップしました。

java -jar selenium-server-standalone-[version].jar -role node -hub [path to the above hub, ie http://[myhost]:4444/grid/register] -browser browserName="internet explorer"

テスト コード自体は非常に単純で、内部アプリケーションにログインし、フォームを表示するボタンをクリックします。フォームでは、フィールドにデータを送信し、[保存] をクリックします。

テストはこれを行います:

Watir::Wait.until { @browser.div(:id=>"after-announcement-container").text_field(:name=>'Description').exists?}
@browser.div(:id=>"after-announcement-container").text_field(:name=>'Description').set "This is a Test"
@browser.div(:id=>'save-announcement-button').click

グリッドのテストを実行すると:

  1. テストをマシンに送信します

  2. リモート マシンの IE が起動します

  3. IE はアプリケーションを介して自動化します

  4. フォームでは、テキストを正しく送信します (「これはテストです」)。

  5. IEは保存をクリックします。

この時点で、フォームには「説明を入力してください」と表示されます (これはそこにあり、「これはテストです」と表示されます)。

私はもう試した:

  1. 待ち時間の追加

  2. :tab や :click などの send_keys を使用して、テキストを送信する前に最初にフィールドに入力します。

  3. また、webdriver セッションを開いたままにし、手動で保存 ([保存] をクリック) すると、常にエラーが発生します。アプリをクリックして保存をクリックしても、フィールドは空であると考えられます。ただし、キーストロークを 1 つ手動で入力すると、機能します。

Webdriver 出力:

Webdriver にはいくつかの出力があり、テキストが正常に送信されていることを示しており、次の形式で視覚的に確認できます。

11:06:21.296 INFO - Executing: [send keys: 7 org.openqa.selenium.support.events.
EventFiringWebDriver$EventFiringWebElement@f3140943, [This is a Test]] at URL: /
session/135941c9-389d-45fa-9fed-14620a4802ca/element/7/value)
11:06:21.662 INFO - Done: /session/135941c9-389d-45fa-9fed-14620a4802ca/element/
7/value
11:06:23.192 INFO - Executing: org.openqa.selenium.remote.server.handler.Status@
4ead24d9 at URL: /status) 

私にとって奇妙な部分は、watir-webdriver をローカルで使用している場合に機能することです。この問題は、グリッドが webdriver テストを送信している場合にのみ発生します。

これは手動で機能するため、開発者はこれをバグとは見なしません。したがって、JSを変更してこれを解決するための支援はあまり得られません。これをグリッドで動作させるための解決策があることを願っています。

4

0 に答える 0