Gérer efficacement plusieurs fenêtres de navigateur avec le sélénium dans IE11
Les tests Web efficaces nécessitent souvent de gérer plusieurs onglets de navigateur et Windows. Selenium WebDriver, bien que puissant, présente des défis lors de la manipulation WindowHandles
dans Internet Explorer 11, principalement en raison de l'ordre incohérent dans lequel les poignées sont renvoyées.
La nature imprévisible des mains de fenêtres
La documentation de Selenium indique explicitement que l'ordre de WindowHandles
n'est pas garanti. Cela rend le recours à la commutation basée sur l'index non fiable et sujette aux erreurs. Alors que certains utilisateurs s'adressent à cela en créant des poignées de mappage de dictionnaire aux types de pages, cela ajoute des frais généraux de complexité et de maintenance, en particulier lorsque les fenêtres sont fermées.
Une approche supérieure: collection de poignées dynamiques
Une solution plus robuste implique la collecte dynamiquement WindowHandles
en utilisant getWindowHandles
chaque fois qu'une nouvelle fenêtre est ouverte. Cela garantit que les poignées sont toujours dans l'ordre de création.
Exemple de code java
Le code Java suivant démontre cette technique améliorée:
<code class="language-java">// Initialize WebDriver WebDriver driver = new InternetExplorerDriver(); driver.get("http://www.google.com"); // Open new windows/tabs ((JavascriptExecutor) driver).executeScript("window.open('http://facebook.com/');"); ((JavascriptExecutor) driver).executeScript("window.open('http://youtube.com/');"); // Collect and iterate through window handles Set<String> windowHandles = driver.getWindowHandles(); Iterator<String> iterator = windowHandles.iterator(); while (iterator.hasNext()) { String handle = iterator.next(); driver.switchTo().window(handle); // Perform actions on the current window }</code>
Résumé
Cette méthode de collecte de poignées dynamiques offre une approche plus propre et plus fiable pour gérer plusieurs fenêtres en sélénium pour Internet Explorer 11, en évitant les complexités du suivi manuel des poignées et en garantissant une commutation cohérente de fenêtres.
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!