4

複雑なWebベースのアプリケーションでSeleniumスクリプトを作成しています。

ユーザーアカウントを使用するには、最初に1つのURLを使用して登録し、次に別のURLの管理コンソールでアカウントを承認する必要があります。

問題は、登録と管理コンソール用に別のbaseURLがあり、1つの単体テストでそれが必要なことです。

しかし、テストでsetBaseUrlを使用すると、それは無視され、古いbaseURLが使用されます。その後、start()を呼び出しましたが、変更はありません...

私が知らないトリックはありますか?私はこの問題についてかなり長い間遊んでデバッグしていますが、分離された(テスト<-> RCServer)セレンテストはステップスルーを容易にしません... ;-)

4

2 に答える 2

3

このselenium-rcにタグを付けたので、rcを使用していると思います。

テストクライアントで2つの別々のセレンインスタンスを使用するだけです。1つのクラス内に1つのセレンインスタンスのみを含める必要がある理由はありません。あなたが2つの異なるユーザーインターフェースと話しているので、それは私の意見ではさらにきれいです。

サーバー側では、必要なのは1つだけです。サーバーは、2つのクライアントインスタンスを使用して要求された場合、2つのブラウザインスタンスを正常に起動します。

モリッツ

編集:これを追加するだけで、今ではセレンインスタンスをいつでも作成できます

Selenium s = new DefaultSelenium("localhost", 4444, "*chrome", 
            "http://your-target-url");

セレンサーバーがローカルホストポート4444にあると仮定します。

于 2010-05-12T19:58:36.157 に答える
1

OK Seleniumは、この種のワークフロー用に構築されていないようです。

テストクラスを3つのテストクラスに分割しました。

  1. 最初のbaseURLを使用した基本登録
  2. seconfbaseURLを使用した承認
  3. 最初のbaseURLを再度使用する単純なタスク

それはビジネスの観点から一緒に属しているので、1つのテストケースに含まれているものほどきれいではありません。しかし、少なくともそれは機能し、私はそれのためにセレンをハックする必要はありません。

于 2010-05-12T11:28:34.547 に答える