#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
が、ページ ルックアップ操作とその子孫のルックアップを組み合わせます。これは常に望ましいとは限りません。