使用Selenium 輕鬆自動化Shadow DOM 元素
當自動化具有複雜多層Shadow DOM 元素的網頁時,Selenium 傳統的findElement 方法可能會失敗短的。然而,隨著 Selenium 4 的出現,出現了一個突破性的解決方案:WebElement.getShadowRoot()。
考慮一個具有以下DOM 結構的網頁:
<body> <div>
與輸入元素在影子根中,我們現在可以利用以下Selenium 4 代碼:
WebElement parentElement = driver.findElement(By.id("parent-element")); WebElement shadowRootElement = parentElement.getShadowRoot(); WebElement inputElement = shadowRootElement.findElement(By.cssSelector("#my-input"));
這種方法消除了對繁瑣的JS Executor 方法或不可靠的深層CSS 選擇器的需求。此外,它允許更簡單和可維護的自動化腳本。
需要注意的是,在影子根中,定位器的選擇是受到限制的。例如,在 Chrome 中,By.cssSelector() 和 By.className() 是有效選項,而 By.id() 和 By.tagName() 可能會導致 InvalidArgumentException。
使用 Selenium 4 的 WebElement。 getShadowRoot(),自動化影子 DOM 元素已成為一個無縫過程,使開發人員能夠輕鬆測試複雜的 Web 應用程式。
以上是Selenium 4 如何簡化 Shadow DOM 元素的自動化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!