Maison > Java > javaDidacticiel > Comment basculer efficacement entre les onglets du navigateur à l'aide de Selenium WebDriver en Java ?

Comment basculer efficacement entre les onglets du navigateur à l'aide de Selenium WebDriver en Java ?

Susan Sarandon
Libérer: 2024-12-14 12:49:15
original
243 Les gens l'ont consulté

How to Efficiently Switch Between Browser Tabs Using Selenium WebDriver in Java?

Changement d'onglet à l'aide de Selenium WebDriver avec Java

Lors de l'automatisation de pages Web avec Selenium WebDriver, le basculement entre les onglets est une exigence courante. Cependant, lorsqu'il s'agit d'onglets dans la même fenêtre, un défi se pose car les deux onglets peuvent avoir le même handle de fenêtre.

Problème :

Lors de l'automatisation d'un scénario qui implique ouvrir un nouvel onglet, effectuer des actions dans cet onglet et revenir à l'onglet d'origine (parent), l'utilisation de la poignée de commutation peut ne pas fonctionner. Les onglets peuvent partager la même poignée de fenêtre, ce qui rend la commutation entre eux inefficace.

Solution 1 : suivre les poignées de fenêtre

Si les poignées de fenêtre sont disponibles, vous pouvez changer d'onglet en utilisant les étapes suivantes :

ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1)); // Switch to the new tab
driver.close(); // Close the new tab
driver.switchTo().window(tabs.get(0)); // Switch back to the parent tab
Copier après la connexion

Solution 2 : Utiliser les actions de sélénium (Expérimental)

La classe expérimentale Selenium.Actions fournit une méthode select_window qui peut être utilisée pour changer d'onglet par titre de fenêtre :

WebElement parentTab = driver.findElement(By.xpath("//ul/li/a[@id='tab1_link']"));
WebElement newTab = driver.findElement(By.xpath("//ul/li/a[@id='tab2_link']"));

Actions actions = new Actions(driver);
actions.keyDown(Keys.CONTROL).click(newTab).keyUp(Keys.CONTROL).build().perform();
actions.keyDown(Keys.CONTROL).click(parentTab).keyUp(Keys.CONTROL).build().perform();
Copier après la connexion

N'oubliez pas de vous assurer que votre bibliothèque de pilotes est à jour pour accéder à la classe Selenium.Actions.

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!

source:php.cn
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