在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中文網其他相關文章!