首頁 >Java >java教程 >Selenium 4 如何簡化與 Shadow DOM 元素的交互作用?

Selenium 4 如何簡化與 Shadow DOM 元素的交互作用?

Barbara Streisand
Barbara Streisand原創
2025-01-01 07:59:09334瀏覽

How Can Selenium 4 Simplify Interaction with Shadow DOM Elements?

在Selenium Java 中自動化Shadow DOM 元素

儘管有大量的網頁使用多層影子根DOM 元素,但仍可以與它們進行交互事實證明,透過Selenium findElement 具有挑戰性。像 Deep CSS 和 JS Executor 這樣的傳統方法已經變得無效或麻煩。

Selenium 4 引入了 getShadowRoot() 方法

Selenium 版本 4 帶來了重大突破,引入了WebElement.getShadowRoot() 方法。此方法提供了一種無縫方式導航到陰影 DOM 元素。以下是一個程式碼範例:

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

此程式碼片段導覽 ID 為「parentId」的父元素,輸入其影子根,在影子根中定位標籤元素,最後選擇其中的輸入元素標籤。

要注意的是,一旦進入影子根,導航選項就會受到限制。對於 Chrome,僅支援 By.cssSelector() 和 By.className(),而 By.id() 和 By.tagName() 可能會導致 org.openqa.selenium.InvalidArgumentException。

以上是Selenium 4 如何簡化與 Shadow DOM 元素的交互作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn