1

したがって、グリッド2を使用して、SeleniumRCが開始するたびにxvfbまたはxvncを起動するための構成ファイルがあります。HubとSeleniumRCは、すでに別々のLinuxボックスにインストールされています。

さらに、RCで実行されているセレンテストとクライアント(Javaクライアントソフトウェア)の間に双方向通信を実装する方法はありますか?たとえば、ページに要素が見つからないためにテストが失敗した場合、クライアントに通知する必要があり、クライアントは正しい要素を提供できます。

したがって、Selenium Webドライバーのテストは停止しないでください。代わりに、正しい入力またはクライアントがテストを終了するまで待機してください。Webアプリケーションのすべてのバリエーションが考慮されていることを確認するためのフィードバックサイクルのようなものです。例)特定のページでランダムに分割されるxpathに依存する、ランダムに生成されたIDを持つフォームボタン。

セレングリッド2がrcを起動する定期的な時間間隔を指定することで継続的インテグレーションを実現することは可能ですか?

つまり、JettyサーバーとしてもWebドライバーテストを拡張する必要がありますか?またはNetty?代わりにセレンWebサービスを開始しますか?

4

2 に答える 2

3

最初の質問に答えるには、常にXvfbサーバーをRCノードで実行することをお勧めします。debianまたはubuntuを実行している場合は、xvfb-runを使用してRCノードを起動することもできます。

nohup xvfb-run java -jar selenium-server-standalone-2.0rc2.jar \
      -role rc \
      -port 5555 \
      -hub http://hub:4444/grid/register 2>&1 > selenium-rc.log &

双方向通信について。isElementPresent()API呼び出しを使用して、テストでこのロジックを処理しないのはなぜですか?user-extensions.jsとgetEval()api呼び出しを使用してセレンを拡張することにより、より複雑な相互作用を実現できます。

getEval()API呼び出しの使用例

RCノードの開始と停止はハブではサポートされていません。ハブの目的は、セレンクライアントからアクティブなRCノードへの要求を仲介することです。RCノードを常に実行することができない場合は、cronを調べることができます。

于 2011-06-14T09:39:56.847 に答える
1

Selenium Gridは、Seleniumサーバーのグループを管理し、それらのサーバーへのクライアントのディスパッチを簡素化するための単なる方法です。Selenium Serverを直接使用して何かを実行できない場合は、グリッドでも実行できません。同様に、Selenium Serverで実行できる場合は、グリッドで実行できます。

したがって、インタラクティブなスクリプトが必要な場合は機能しますが、それはすべてクライアントから駆動されます。SeleniumServerがアプリケーションにコールバックする方法はありません。

于 2011-06-24T20:22:59.013 に答える