ホームページ >Java >&#&チュートリアル >Selenium 4 はどのようにして Shadow DOM 要素との対話を簡素化できるのでしょうか?

Selenium 4 はどのようにして Shadow DOM 要素との対話を簡素化できるのでしょうか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-01 07:59:09311ブラウズ

How Can Selenium 4 Simplify Interaction with Shadow DOM Elements?

Selenium Java でのシャドウ DOM 要素の自動化

マルチレベルのシャドウ ルート DOM 要素を利用する Web ページが大量にあるにもかかわらず、それらの要素と対話するSelenium を使用した findElement は困難であることが判明しました。ディープ CSS や JS Executor などの従来のメソッドは効果がないか、扱いにくくなりました。

Selenium 4 で getShadowRoot() メソッドが導入されました

Selenium バージョン 4 では、重要な進歩がもたらされ、 WebElement.getShadowRoot() メソッド。このメソッドは、Shadow DOM 要素にシームレスに移動する方法を提供します。コード例は次のとおりです。

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

このスニペットは、ID「parentId」を持つ親要素内を移動し、そのシャドウ ルートに入り、シャドウ ルート内のラベル要素を見つけて、最後にその中の入力要素を選択します。 label.

シャドウ ルートに入ると、ナビゲーション オプションが制限されることに注意することが重要です。 Chrome の場合、By.cssSelector() と By.className() のみがサポートされますが、By.id() と By.tagName() は org.openqa.selenium.InvalidArgumentException を引き起こす可能性があります。

以上がSelenium 4 はどのようにして Shadow DOM 要素との対話を簡素化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。