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?
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 :
firstTab
.WebDriverWait
pour s'assurer que deux fenêtres sont ouvertes avant de continuer.WindowHandles
.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!