私は統合テストにSeleniumを幅広く使用しています。すべての通常のもの(HTML / AJAX)でうまく機能しますが、サードパーティのActiveX、Javaアプレット、およびFlashコンポーネントをテストしようとしているときはうまくいきません。
これについて私が見つけた解決策はSikuliです。ローカルでうまく機能しますが、どうすればそれをSeleniumに統合できますか?
ところで。それが関係している場合、SeleniumではPythonAPIを使用しています。
私は統合テストにSeleniumを幅広く使用しています。すべての通常のもの(HTML / AJAX)でうまく機能しますが、サードパーティのActiveX、Javaアプレット、およびFlashコンポーネントをテストしようとしているときはうまくいきません。
これについて私が見つけた解決策はSikuliです。ローカルでうまく機能しますが、どうすればそれをSeleniumに統合できますか?
ところで。それが関係している場合、SeleniumではPythonAPIを使用しています。
Selenium RCドキュメントのPythonセクションを参照してください: http ://seleniumhq.org/docs/05_selenium_rc.html#python
JythonからSeleniumテストを実行できる場合があります。その場合、SeleniumスクリプトをSikuliスクリプトに簡単に統合できます。
SikuliIDEで次のことを試してください。Seleniumプロジェクト内の特定のファイルを指すように、インポートステートメントを変更する必要がある場合があります。
from selenium import selenium # this will probably need tweaking...
slm = selenium("localhost", 4444, "*firefox", "http://www.google.com/")
slm.start()
# etc...
この男は、JythonからSeleniumを制御することに成功したようです:http ://adam.goucher.ca/?p = 367
私の結論:おそらく、Jythonにとどまり、そこからSeleniumを制御するのが最も簡単でしょう。両方のツールを1つのスクリプトに統合できます。
SeleniumGridでSikuli機能を使用することができます。すべてのノードとハブに追加のライブラリをインストールする必要があります。
詳細については、このプロジェクトを確認してください
Seleniumサーバーを拡張して、SIKULIスクリプトを実行できるようにすることができます( Javaからスクリプトを呼び出す方法についてはこちらを参照してください)。
ただし、Selenium ServerはJavaアプリであるため、Javaで開発する必要があります。
カスタムまたは特定のテストフレームワークを使用する必要がない場合、1つのオプションはRobot Framework(RF)です。Seleniumライブラリがあり、RFでSikuliを使用する方法があります。そのことを念頭に置いて、RFを使用して2つを組み合わせることができます。さらに、RFにはいくつかの優れたテスト自動化フレームワーク機能が組み込まれています。
robotframework.org
http://blog.mykhailo.com/2011/02/how-to-sikuli-and-robot-framework.html
Seleniumグリッド上でSikuli関数をリモートで実行する場合は、SeleniumAugmenterを使用して実行する必要があるようです 。ここでの回答はいずれも、SauceLabsを使用する場合などのリモートグリッドがSikuli機能を取得する方法を示していません。おそらく、Seleniumプロジェクトは、Sikuliのような外部ライブラリをロードするためにAugmenterクラスをまだ拡張していませんか?
このため、Sikuliを使用するときは、常に非リモートの標準のローカルWebDriverインスタンスを使用する必要があります。