Maison >Java >javaDidacticiel >Comment Selenium 4 peut-il accéder efficacement aux éléments Shadow DOM ?
Accès aux éléments Shadow DOM avec Selenium 4
Vous rencontrez des difficultés à interagir avec les éléments Shadow DOM lors de l'automatisation de pages Web à l'aide de la méthode findElement de Selenium. Cette requête explore les obstacles et présente une solution efficace.
Défis liés aux approches traditionnelles
Les méthodes CSS et JS Executor approfondies que vous avez essayées ont des limites. Dysfonctionnements CSS profonds dans les versions récentes de Chrome, tandis que JS Executor nécessite un code lourd et difficile à gérer.
Solution de Selenium 4
Heureusement, Selenium 4 introduit le WebElement. getShadowRoot(), qui permet un accès direct aux éléments shadow DOM. Voici un exemple :
driver.findElement(By.id("parentId")).getShadowRoot().findElement(By.cssSelector("label")).findElement(By.tagName("input"))
Limitations de l'accès au Shadow DOM
Gardez à l'esprit que l'accès aux éléments du Shadow DOM via WebElement.getShadowRoot() comporte certaines restrictions. Plus précisément, les sélecteurs sont limités par la profondeur et la validité de la structure de la racine fantôme. Par exemple, By.id() et By.tagName() peuvent ne pas être des choix viables selon le contexte.
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!