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
Libérer: 2025-01-27 02:37:09
original
928 Les gens l'ont consulté

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 :

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");
    }
}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal