Selenium を使用したシャドウ DOM 要素の自動化
Selenium の findElement メソッドを使用して Web ページ上のシャドウ DOM 要素を操作する際に問題が発生しています。ディープ CSS や JS Executor などのオプションを検討しても、制限やメンテナンスの課題に直面します。このガイドでは、Selenium の Java フレームワーク内でこれらの要素を自動化するための包括的なソリューションを提供します。
Selenium 4 の Shadow DOM サポート
探していたソリューションの紹介: Selenium 4 のWebElement.getShadowRoot() メソッド。この強力な機能を使用すると、Shadow DOM 要素にシームレスに移動できます。その使用法を示す例を次に示します。
driver.findElement(By.id("parentId")).getShadowRoot().findElement(By.cssSelector("label")).findElement(By.tagName("input"));
このコード スニペットは、ID「parentId」を持つシャドウ DOM 要素に移動し、CSS とタグ名ロケーターを使用してその中の入力要素をさらに見つけます。
Shadow DOM ナビゲーションの制限
getShadowRoot() メソッドは、Shadow DOM 要素へのアクセスへの扉を開きますが、その制限に注意することが重要です。 By.cssSelector() や By.className() などの特定のロケーター タイプのみがシャドウ ルート内で有効です。 By.id() や By.tagName() などのロケーターでは、期待した結果が得られない場合があります。それにもかかわらず、この方法は、これまで困難であった要素と効果的に対話するための貴重なツールを提供します。
以上がSelenium 4 は Java の Shadow DOM 要素をどのように効率的に自動化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。