在 Selenium Automation 中导航 Shadow DOM
使用 Selenium 自动化 Shadow DOM 元素可能是一项具有挑战性的任务,特别是当元素嵌套在多个元素中时DOM 层。这个问题促使用户寻求替代解决方案,例如深度 CSS 和 JS Executor,但这些方法已被证明无效或乏味。
Selenium 4 的 Shadow DOM 解决方案
幸运的是,Selenium 4 引入了 WebElement.getShadowRoot(),为这个问题提供了直接的解决方案。通过此方法,您可以遍历到影子 DOM 并与其元素进行交互,如下所示:
driver.findElement(By.id("parentId")).getShadowRoot().findElement(By.cssSelector("label")).findElement(By.tagName("input"));
导航限制
在影子根中导航时,它是需要注意的是,某些 WebDriver 方法的功能可能有限。例如,使用 By.id() 和 By.tagName() 定位元素可能会失败并出现 InvalidArgumentException,而 By.cssSelector() 和 By.className() 仍然有效。
以上是Selenium 4 如何高效处理 Shadow DOM 元素交互?的详细内容。更多信息请关注PHP中文网其他相关文章!