IDE で openWindow コマンドを使用した後、フォーカスを維持できません。この問題は、同じテスト スイート内の 2 番目のテスト ケースが新しく開いたウィンドウと対話しようとした場合にのみ発生します。たとえば、次のことを行う個別のテスト ケースで構成されるテスト スイートがあります。
- サイト A にログインする
- 取引データを入力する
- トランザクションを送信して承認を得る
- 新しいウィンドウを開き、サイト B にログインします
- サイト B でトランザクションを承認し、ウィンドウを閉じます
- サイト A でトランザクションの処理を続行する
「openWindow」と同じテスト ケースでテスト ケース 5 の「サイト B」アクションを実行すると (つまり、テスト ケース 4 と 5 をマージすると)、すべてのコマンドがエラーなしで実行されます。別のテスト ケースで同じアクションを実行すると、新しいウィンドウがフォーカスを失い、すべての Selenium コマンドが元のウィンドウに戻されます。
これの興味深い部分は、ステップ 5 で「新しい」ウィンドウを識別して再選択しようとしていることです。
テスト ケース 5 で「selectWindow name=siteB_URL」を実行すると、「ウィンドウが存在しません。これが Selenium のバグのように見える場合は...」というエラー メッセージが表示されます。
次に、storeAllWindowNames を呼び出して結果をエコーし、少なくとも Selenium がさまざまな時点で認識しているウィンドウ名を確認することにしました。テスト ケース 4 の最後の 2 つのコマンドとしてこれを実行すると、期待どおりの結果が得られます。「echo ,siteB_URL」がログに記録されます。テスト ケース 5 の最初の 2 行と同じことを行うと、"echo" が返されます。これは私が得た部分です - テストケースを変更するだけで、新しいウィンドウへの参照が失われるようです。
Selenium IDE でこの問題の回避策または解決策を思いついた人はいますか?
今朝、Web やさまざまなフォーラムを探し回って提案を探すのに数時間費やしましたが、役に立ちませんでした。
前もって感謝します、
グレン
4-7-12 - 更新 - 上記のシナリオの簡単な例を次に示します。
[info] Executing: |openWindow | http://www.google.com.au | google2 |
[info] Executing: |selectWindow | google2 | |
[info] Executing: |storeAllWindowNames | allWindows | |
[info] Executing: |echo | ${allWindows} | |
[info] echo: ,google2
[info] Changed test case
[info] Executing: |storeAllWindowNames | allWindows | |
[info] Executing: |echo | ${allWindows} | |
[info] echo:
[info] Executing: |selectWindow | name=google2 | |
[error] Window does not exist. If this looks like a Selenium bug, make sure to read http://seleniumhq.org/docs/04_selenese_commands.html#alerts-popups-and-multiple-windows for potential workarounds.