Internet Explorer 11 の UI テストのために Selenium Webdriver を使用しています。 テスト Web アプリケーションでは、いくつかの画面がポップアップ表示されます。一部のテストでは、ブラウザ ウィンドウが 3 つになり、Driver.WindowHandles が 3 つになりました。 ある WindowHandle から別の WindowHandle に切り替えるには、Driver.WindowHandles が最も古いウィンドウが最初に、最新のウィンドウが最後にソートされることが期待されます。しかし、そうではありません。それは完全にランダムです。
windowhandle は GUID であるため、最終的には、WindowHandle GUID をキーとして、値をブラウザ ウィンドウにロードされるページの種類の値として使用して辞書を作成することになります。 ただし、これにより、ウィンドウが閉じられたときにも辞書が維持されます。
これほど単純なことなのに、大変な作業のように思えます。もっと良い解決策はありますか?
###あなたは、絶対に正しい: ###
サイモンはディスカッションの中で次のように明確に述べました:
したがって、
WebDriverWait
Java:
リーリーを発生させ、新しいタブ/ウィンドウが開くたびにウィンドウ ハンドルを収集し、最後にウィンドウ ハンドルと
switchTo() を反復処理します。 .window( new_opened) 必要に応じて:コンソール出力:
リーリー###他の###
python
に基づくディスカッションは、
新しいタブで Web Selenium Python を開くで見つけることができます。