0

Vaadin フレームワークを使用して開発された Java アプリケーションのテストを作成しています。テストにはRobot Frameworkを使用しています。一部のステップでは、 execute javascriptなどのロボット フレームワーク コマンドを使用する必要があります。

たとえば、コンポーネントを見つけるには、次のコマンドを実行する必要があります。

execute javascript    document.getElementById('button-create').click()

問題なく動作します。Click ElementVaadin はページ全体が読み込まれるまで待機せず、実行時に一部の ID がまだ割り当てられていないため、プリミティブのようなものは機能しません。

click残念ながら、このアプリケーションは、一部のコンポーネントがイベントではなくイベントに反応するように開発されていますmousedown。つまり、Chrome の Java コンソールで次のコマンドを実行できます。

    document.getElementsByClassName('table-cell-wrapper')[1].mousedown();

動作は問題なく実行されます。ここまでは順調ですね。

残念ながら、ロボットフレームワークで同じことをしようとすると

    execute javascript    document.getElementsByClassName('table-cell-wrapper')[1].mousedown();

次のエラーが表示されます。

Executing JavaScript:
document.getElementsByClassName('table-cell-wrapper')[1].mousedown();
20131029 12:22:12.445 :  INFO : </td></tr><tr><td colspan="3"><a href="selenium-    screenshot-1.png"><img src="selenium-screenshot-1.png" width="800px"></a>20131029 12:22:12.453 :  FAIL : 
WebDriverException: Message: u'document.getElementsByClassName(...)[1].mousedown is not a function' ;

mousedown問題は、Javascript と Webdriver を使用して特定の要素でイベントをトリガーするにはどうすればよいかということです。

私の環境は次のとおりです。

RIDE 1.2.1 running on Python 2.7.5. 
Robot Framework 2.8.1
Library           Selenium2Library
Library           Screenshot
Library           Dialogs
Library           Collections

前もって感謝します。

4

1 に答える 1