首页 >Java >java教程 >Selenium 4 如何有效自动化 Shadow DOM 元素?

Selenium 4 如何有效自动化 Shadow DOM 元素?

Linda Hamilton
Linda Hamilton原创
2024-12-21 00:39:11263浏览

How Can Selenium 4 Effectively Automate Shadow DOM Elements?

使用 Selenium 自动化 Shadow DOM 元素

作为一名 Selenium Java 开发人员,遇到具有深层 Shadow DOM 结构的网页可能会带来挑战。使用 findElement 方法在这些嵌套 DOM 中定位元素并与之交互可能很困难。

无效的解决方案:

  • 深层 CSS:这种方法在现代 Chrome 浏览器中不再有效。
  • JS执行器:虽然功能齐全,但维护起来可能很乏味且复杂。

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn