ホームページ >Java >&#&チュートリアル >Selenium 4 はどのようにして Shadow DOM 要素に効率的にアクセスできるのでしょうか?
Selenium 4 を使用した Shadow DOM 要素へのアクセス
Selenium の findElement メソッドを使用して Web ページを自動化するときに、Shadow DOM 要素との対話で問題が発生します。このクエリは障害を調査し、効果的な解決策を提示します。
従来のアプローチの課題
試行したディープ CSS および JS Executor メソッドには制限があります。最近の Chrome バージョンでは Deep CSS が誤動作する一方、JS Executor には煩雑で管理が難しいコードが必要です。
Selenium 4 の解決策
幸いなことに、Selenium 4 では WebElement が導入されています。 getShadowRoot() メソッド。シャドウ DOM 要素への直接アクセスを可能にします。以下に例を示します。
driver.findElement(By.id("parentId")).getShadowRoot().findElement(By.cssSelector("label")).findElement(By.tagName("input"))
Shadow DOM アクセスの制限
WebElement.getShadowRoot() を介した Shadow DOM 要素へのアクセスには、特定の制限があることに注意してください。具体的には、セレクターはシャドウ ルートの構造の深さと有効性によって制限されます。たとえば、By.id() と By.tagName() はコンテキストによっては実行可能な選択肢ではない可能性があります。
以上がSelenium 4 はどのようにして Shadow DOM 要素に効率的にアクセスできるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。