Selenium2 のロケーター(By) ってチェーン出来たのね

ByChained というのがあるようです。

...
<ul id="drink">
  <li>珈琲</li>
  <li>緑茶</li>
  <li>牛乳</li>
</ul>
<ul id="food">
  <li>パン</li>
  <li>米</li>
</ul>
...

こんな HTML で、2個めの ul 内の li を取りたいときに、こんな感じで書いてました。

WebElement food = driver.findElement(By.id("food"));
if (food == null) {
  return Collections.emptyList();
}
return food.findElements(By.tagName("li"));

それが、ByChained を使うとこんな風に書けました。

return driver.findElements(new ByChained(By.id("food"), By.tagName("li")));