ホームページ > バックエンド開発 > C++ > Selenium ウィンドウ ハンドルを確実に追跡および反復するにはどうすればよいですか?

Selenium ウィンドウ ハンドルを確実に追跡および反復するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-27 02:52:08
オリジナル
774 人が閲覧しました

How Can I Reliably Track and Iterate Through Selenium Window Handles?

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

ソフトウェアのテストでは、複数のタブやウィンドウを追跡するのが難しい場合があります。 Selenium は、この問題を管理するために WindowHandles プロパティを提供しますが、その予測できない並べ替え順序が欠点になる可能性があります。

WindowHandle の順序のランダム性

上記の説明で述べたように、Selenium はウィンドウ ハンドルの順序がウィンドウが作成された順序であることを保証しません。このランダム性により、ウィンドウを希望の順序で反復することが困難になります。

代替案

この問題を解決するには、より信頼性の高い方法を使用できます:

  1. WebDriverWait の紹介: これにより、WebDriver はハンドルを収集する前に、新しいタブまたはウィンドウが完全にロードされるまで待機するようになります。
  2. ウィンドウ ハンドルの収集: 新しいタブまたはウィンドウを開いた後、ウィンドウ ハンドルのセットを取得します。
  3. 反復と切り替え: ハンドルをループし、switchTo().window() を使用して、必要に応じて、新しく開かれた各ウィンドウにフォーカスを置きます。

次は、Java、WebDriver 3.5.3、および IEDriverServer 3.5.0.0 で書かれた例です。

<code class="language-java">WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.numberOfWindowsToBe(2));
Set<String> s1 = driver.getWindowHandles();
Iterator<String> i1 = s1.iterator();</code>
ログイン後にコピー

これらの手順に従うことで、複数のタブとウィンドウをより効率的に管理し、予測可能な繰り返しと切り替え動作を保証できます。

以上がSelenium ウィンドウ ハンドルを確実に追跡および反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート