首页 >web前端 >js教程 >Selenium 4 的'WebElement.getShadowRoot()”如何解决 Shadow DOM 自动化挑战?

Selenium 4 的'WebElement.getShadowRoot()”如何解决 Shadow DOM 自动化挑战?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-03 20:34:16797浏览

How Can Selenium 4's `WebElement.getShadowRoot()` Solve Shadow DOM Automation Challenges?

使用 Selenium 4 的 WebElement.getShadowRoot() 方法实现 Shadow DOM 自动化

问题:Selenium 的 findElement 方法被证明不足以与嵌套阴影交互 - Java Selenium 中的根 DOM 元素

尝试的解决方案:

  • 深层 CSS(在最新的 Chrome 浏览器中无效)
  • JS 执行器(由于维护挑战而不切实际)

硒 4解决方案:

Selenium 4 引入了 WebElement.getShadowRoot() 方法,可以直接导航到影子根元素。语法如下:

driver.findElement(By.id("parentId")).getShadowRoot().findElement(By.cssSelector("label")).findElement(By.tagName("input"))

导航注意事项:

  • By.cssSelector() 和 By.className() 是可行的导航选项Shadow-root。
  • 但是,By.id() 和 By.tagName() 会触发“无效”参数”错误。

以上是Selenium 4 的'WebElement.getShadowRoot()”如何解决 Shadow DOM 自动化挑战?的详细内容。更多信息请关注PHP中文网其他相关文章!

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