使用 Selenium 自动化 Shadow DOM 元素
作为一名 Selenium Java 开发人员,遇到具有深层 Shadow DOM 结构的网页可能会带来挑战。使用 findElement 方法在这些嵌套 DOM 中定位元素并与之交互可能很困难。
无效的解决方案:
Selenium 4 解决方案:
Selenium 4 引入了一个使用 WebElement 的解决方案。 getShadowRoot()。此方法允许您导航到影子 DOM 根并与其元素交互。例如:
WebElement parent = driver.findElement(By.id("parentId")); WebElement child = parent.getShadowRoot().findElement(By.cssSelector("label")).findElement(By.tagName("input"));
限制:
在影子根中,可以使用 By.cssSelector() 和 By.className(),而 By.id () 和 By.tagName() 抛出 org.openqa.selenium.InvalidArgumentException。
以上是Selenium 4 如何有效自动化 Shadow DOM 元素?的详细内容。更多信息请关注PHP中文网其他相关文章!