4

#myPage要素の下でいくつかのdiv要素を探しているとします。私の目標は、CSS セレクターを使用して、#myPageの子孫のみに検索を制限することです。

Selenium XPath ロケーターを使用すると、次のように記述できます。

WebElement page = driver.findElement(new By.ById("myPage"));
....
List<WebElement> item = page.findElements(new By.ByXPath(".//div"));

ただし、CSS を使用しようとすると、 #myPage の子孫だけでなく、ドキュメント内のすべてdiv が生成されます。

WebElement page = driver.findElement(new By.ById("myPage"));
....
List<WebElement> item = page.findElements(new By.ByCssSelector("div"));

大きな違いは.//、XPath 式を相対的にするプレフィックスです。CSS 構文で同様のプロパティを見つけることができませんでした。

PS式
を使用できることはわかっています#myPage > divが、ページ ルックアップ操作とその子孫のルックアップを組み合わせます。これは常に望ましいとは限りません。

4

1 に答える 1