検索

ホームページ  >  に質問  >  本文

Selenium を使用して WindowHandles を使用してタブとウィンドウを追跡および反復する最良の方法

Internet Explorer 11 の UI テストのために Selenium Webdriver を使用しています。 テスト Web アプリケーションでは、いくつかの画面がポップアップ表示されます。一部のテストでは、ブラウザ ウィンドウが 3 つになり、Driver.WindowHandles が 3 つになりました。 ある WindowHandle から別の WindowHandle に切り替えるには、Driver.WindowHandles が最も古いウィンドウが最初に、最新のウィンドウが最後にソートされることが期待されます。しかし、そうではありません。それは完全にランダムです。

windowhandle は GUID であるため、最終的には、WindowHandle GUID をキーとして、値をブラウザ ウィンドウにロードされるページの種類の値として使用して辞書を作成することになります。 ただし、これにより、ウィンドウが閉じられたときにも辞書が維持されます。

これほど単純なことなのに、大変な作業のように思えます。もっと良い解決策はありますか?

P粉744691205P粉744691205420日前753

全員に返信(1)返信します

  • P粉986937457

    P粉9869374572023-11-05 16:56:30

    ###あなたは、絶対に正しい: ###

    サイモンはディスカッションの中で次のように明確に述べました:

    したがって、

    WebDriverWait を発生させ、新しいタブ/ウィンドウが開くたびにウィンドウ ハンドルを収集し、最後にウィンドウ ハンドルと switchTo() を反復処理します。 .window( new_opened) 必要に応じて: Java:

    リーリー

    コンソール出力:

    リーリー

    ###他の###


    python

    に基づくディスカッションは、

    新しいタブで Web Selenium Python を開く