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!