ホームページ >バックエンド開発 >C++ >Selenium の WindowHandles を使用して複数のブラウザ ウィンドウとタブを確実に管理および反復するにはどうすればよいですか?

Selenium の WindowHandles を使用して複数のブラウザ ウィンドウとタブを確実に管理および反復するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-27 02:37:09850ブラウズ

How Can I Reliably Manage and Iterate Through Multiple Browser Windows and Tabs Using Selenium's WindowHandles?

信頼性の高いマルチウィンドウ/タブ管理

については、WindowHandlesセレニウムの

複数のブラウザウィンドウとタブを効率的に管理することは、堅牢なWebアプリケーションテストに不可欠です。 Selenium's 一般的な問題は、WindowHandlesをループするときの一貫性のない順序です。これにより、特定のタブまたはWindowsのターゲティングが困難になります ソリューションには、新しいウィンドウ/タブの作成に

とリアルタイムのハンドルコレクションを組み合わせることが含まれます。これにより、信頼できる反復と切り替えを可能にし、更新されたWindowHandlesリストが保証されます。

これがこの手法を紹介するJavaの例です:

WebDriverWait WindowHandlesこのコード:

最初のGoogleタブのハンドルを
<code class="language-java">WebDriver driver = new InternetExplorerDriver();
driver.get("http://www.google.com");
String firstTab = driver.getWindowHandle();
((JavascriptExecutor) driver).executeScript("window.open('http://facebook.com/');");
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.numberOfWindowsToBe(2));
Set<String> handles = driver.getWindowHandles();
Iterator<String> iterator = handles.iterator();
while (iterator.hasNext()) {
    String currentTab = iterator.next();
    if (!firstTab.equalsIgnoreCase(currentTab)) {
        driver.switchTo().window(currentTab);
        System.out.println("Now working on Facebook");
    }
}</code>

に保存します

を使用して、進行する前に2つのウィンドウが開いていることを確認します。
  • セットを介して収集して反復します。firstTab
  • [Facebook]タブに切り替えて、確認メッセージを印刷します。
  • WebDriverWaitこのアプローチは、Pythonのような他の言語に適応できます。 この方法では、セレンテスト内のブラウザウィンドウとタブの一貫した信頼できる管理を保証します。

以上がSelenium の WindowHandles を使用して複数のブラウザ ウィンドウとタブを確実に管理および反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。