Selenium を使用してシャドウ DOM 要素を簡単に自動化する
複雑なマルチレベルのシャドウ DOM 要素を含む Web ページを自動化する場合、Selenium の従来の findElement メソッドが失敗する可能性があります短い。しかし、Selenium 4 の出現により、WebElement.getShadowRoot().
次の DOM 構造を持つ Web ページを考えてみましょう:
<body> <div>
シャドウ ルート内の input 要素を使用すると、次の Selenium 4 コードを利用できるようになります:
WebElement parentElement = driver.findElement(By.id("parent-element")); WebElement shadowRootElement = parentElement.getShadowRoot(); WebElement inputElement = shadowRootElement.findElement(By.cssSelector("#my-input"));
このアプローチ面倒な JS Executor メソッドや信頼性の低い深い CSS セレクターが不要になります。さらに、より簡単で保守しやすい自動化スクリプトが可能になります。
シャドウ ルート内では、ロケーターの選択が制限されていることに注意することが重要です。たとえば、Chrome では By.cssSelector() と By.className() が有効なオプションですが、Selenium 4 の WebElement では By.id() と By.tagName() が InvalidArgumentException.
を引き起こす可能性があります。 getShadowRoot() によるシャドウ DOM 要素の自動化はシームレスなプロセスとなり、開発者は複雑な Web アプリケーションを簡単にテストできるようになりました。
以上がSelenium 4 はどのようにして Shadow DOM 要素の自動化を簡素化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。