ホームページ >Java >&#&チュートリアル >Selenium 4 はどのようにして Shadow DOM 要素との対話を簡素化できるのでしょうか?
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 サイトの他の関連記事を参照してください。