& lt; h1 & gt; Automating les éléments Shadow Dom dans le sélénium & lt; / h1 & gt;
naviguer et interagir avec les éléments de l'ombre DOM ont toujours plégé un défi dans l'automatisation Web. Cet article explore la dernière solution introduite dans Selenium 4 qui simplifie ce processus.
& lt; h2 & gt; Introduction & lt; / h2 & gt;
Shadow Dom est une technique de développement Web utilisée pour créer des arbres Dom encapsulés qui sont cachés à l'arbre de document principal. Ces éléments sont souvent utilisés pour l'optimisation des performances et la modularisation. Cependant, leur obscurité peut les rendre difficiles à interagir avec l'utilisation de méthodes traditionnelles de sélénium comme FindElement.
& lt; h2 & gt; Selenium 4 Solution & lt; / h2 & gt;
Selenium 4 introduit une nouvelle méthode appelée WebElement. getShadowRoot () qui permet une interaction directe avec les éléments Shadow Dom. Cette méthode renvoie l'élément racine de l'ombre DOM, que vous pouvez utiliser pour naviguer et trouver des éléments enfants à l'intérieur.
& lt; h3 & gt; Exemple d'utilisation & lt; / h3 & gt;
pour interagir avec avec Un élément Shadow Dom, vous pouvez utiliser la syntaxe suivante:
driver.findElement(By.id("parentId")).getShadowRoot().findElement(By.cssSelector("label")).findElement(By.tagName("input"));
Dans cet exemple, nous localisons d'abord l'élément parent de l'ombre Dom, puis utilisons GetShadOwroot () pour accéder à la racine de l'ombre. À partir de là, nous pouvons utiliser des méthodes standard de sélénium pour trouver des éléments enfants spécifiques dans le domaine de l'ombre
& lt; h2 & gt; note & lt; / h2 & gt;
Il convient de noter que les choix de navigation disponibles pour un La racine de l'ombre est limitée. Par exemple, l'utilisation par.id () ou by.tagname () dans une racine d'ombre peut entraîner une invalidargumentException. By.cssselector () et by.classname () restent des options valides.
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!