Maison >développement back-end >C++ >Comment puis-je gérer et itérer de manière fiable à travers plusieurs fenêtres de navigateur et onglets à l'aide de Windowles de Selenium?

Comment puis-je gérer et itérer de manière fiable à travers plusieurs fenêtres de navigateur et onglets à l'aide de Windowles de Selenium?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-27 02:37:09918parcourir

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

Selenium WindowHandles pour une gestion fiable de plusieurs fenêtres/onglets

La gestion efficace de plusieurs fenêtres et onglets de navigateur est essentielle pour des tests d'applications Web robustes. Le WindowHandles de Selenium fournit ce contrôle, mais son imprévisibilité inhérente à l'ordre des itérations (stockage basé sur le GUID) présente des défis.

Un problème courant est l'ordre incohérent lors de la boucle sur WindowHandles. Cela rend difficile le ciblage d'onglets ou de fenêtres spécifiques.

La solution consiste à combiner WebDriverWait avec une collecte de poignées en temps réel lors de la création d'une nouvelle fenêtre/onglet. Cela garantit une WindowHandles liste mise à jour, permettant une itération et une commutation fiables.

Voici un exemple Java illustrant cette technique :

<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>

Ce code :

  • Stocke le handle initial de l'onglet Google dans firstTab.
  • Utilise WebDriverWait pour s'assurer que deux fenêtres sont ouvertes avant de continuer.
  • Collecte et parcourt l'ensemble WindowHandles.
  • Passe sur l'onglet Facebook et imprime un message de confirmation.

Cette approche est adaptable à d'autres langages comme Python. Cette méthode garantit une gestion cohérente et fiable des fenêtres et onglets du navigateur au sein de vos tests Selenium.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn