Automatiser les éléments Shadow DOM sans effort avec Selenium
Lors de l'automatisation de pages Web comportant des éléments Shadow DOM complexes à plusieurs niveaux, la méthode traditionnelle findElement de Selenium peut tomber court. Cependant, avec l'avènement de Selenium 4, une solution révolutionnaire a émergé : WebElement.getShadowRoot().
Considérons une page Web avec la structure DOM suivante :
<body> <div>
Pour interagir avec le élément d'entrée dans la racine fantôme, nous pouvons maintenant utiliser le code Selenium 4 suivant :
WebElement parentElement = driver.findElement(By.id("parent-element")); WebElement shadowRootElement = parentElement.getShadowRoot(); WebElement inputElement = shadowRootElement.findElement(By.cssSelector("#my-input"));
Cette approche élimine le besoin de Méthodes JS Executor fastidieuses ou sélecteurs CSS profonds peu fiables. De plus, il permet des scripts d'automatisation plus simples et plus maintenables.
Il est important de noter qu'au sein d'une racine fantôme, le choix des localisateurs est restreint. Par exemple, dans Chrome, By.cssSelector() et By.className() sont des options valides, tandis que By.id() et By.tagName() peuvent entraîner une InvalidArgumentException.
Avec WebElement de Selenium 4. getShadowRoot(), l'automatisation des éléments shadow DOM est devenue un processus transparent, permettant aux développeurs de tester facilement des applications Web complexes.
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!