Schatten-DOM-Elemente mühelos mit Selenium automatisieren
Beim Automatisieren von Webseiten mit komplizierten mehrstufigen Schatten-DOM-Elementen kann die traditionelle findElement-Methode von Selenium versagen kurz. Mit der Einführung von Selenium 4 ist jedoch eine bahnbrechende Lösung aufgetaucht: WebElement.getShadowRoot().
Stellen Sie sich eine Webseite mit der folgenden DOM-Struktur vor:
<body> <div>
Zur Interaktion mit Eingabeelement innerhalb der Schattenwurzel können wir jetzt den folgenden Selenium 4-Code verwenden:
WebElement parentElement = driver.findElement(By.id("parent-element")); WebElement shadowRootElement = parentElement.getShadowRoot(); WebElement inputElement = shadowRootElement.findElement(By.cssSelector("#my-input"));
Dieser Ansatz macht dies überflüssig langwierige JS-Executor-Methoden oder unzuverlässige Deep-CSS-Selektoren. Darüber hinaus ermöglicht es einfachere und wartbarere Automatisierungsskripte.
Es ist wichtig zu beachten, dass innerhalb eines Schattenstamms die Auswahl an Locators eingeschränkt ist. In Chrome sind beispielsweise By.cssSelector() und By.className() gültige Optionen, während By.id() und By.tagName() zu einer InvalidArgumentException führen können.
Mit WebElement von Selenium 4. Mit getShadowRoot() ist die Automatisierung von Schatten-DOM-Elementen zu einem nahtlosen Prozess geworden, der es Entwicklern ermöglicht, komplexe Webanwendungen problemlos zu testen.
Das obige ist der detaillierte Inhalt vonWie kann Selenium 4 die Automatisierung von Shadow-DOM-Elementen vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!