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
Susan Sarandonoriginal
2024-12-14 12:49:15245parcourir

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

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();

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!

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