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

Selenium 4 はどのようにして Shadow DOM 要素を効果的に自動化できるのでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-21 00:39:11265ブラウズ

How Can Selenium 4 Effectively Automate Shadow DOM Elements?

Selenium を使用したシャドウ DOM 要素の自動化

Selenium Java 開発者として、ディープ シャドウ DOM 構造を持つ Web ページに遭遇すると、課題が生じる可能性があります。 findElement メソッドを使用して、これらのネストされた DOM 内の要素を見つけて操作するのは難しい場合があります。

非効率な解決策:

  • ディープ CSS:このアプローチは最新の Chrome では機能しなくなりました
  • JS Executor: 機能しますが、保守が面倒で複雑になる可能性があります。

Selenium 4 ソリューション:

Selenium 4 では、WebElement.getShadowRoot() によるソリューションが導入されています。このメソッドを使用すると、Shadow DOM ルートに移動して、その要素を操作できます。例:

WebElement parent = driver.findElement(By.id("parentId"));
WebElement child = parent.getShadowRoot().findElement(By.cssSelector("label")).findElement(By.tagName("input"));

制限事項:

シャドウ ルート内では By.cssSelector() と By.className() を使用できますが、By.id () および By.tagName() は org.openqa.selenium.InvalidArgumentException をスローします。

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

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