2

我有以下列表:

<ul>
<li> item1 is red
</li>
<li> item1 is blue 
</li>
<li> item1 is white  
</li>
</ul>

我尝试了以下方法来打印第一项:

String item = driver.findElement(By.xpath("//ul//li[0]")).getText();
        System.out.println(item);

但是,我得到了: NoSuchElementException ...我可以使用 cssSelector 但我没有 ul 的 id

4

4 回答 4

7

我认为 XPath 应该是"//ul/li[1]". 在 selenium 中,第一项是 1,而不是 0。看这里

于 2013-04-06T19:25:04.483 回答
2

我知道这不如其他答案有效,但我认为它会给你结果。

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('li').first()");

String item = element.getText()
于 2013-04-06T19:25:43.780 回答
2
(//ul/li)[1]

这将选择 XML 文档li元素中的第一个元素的子ul元素

请注意表达式

//ul/li[1]

选择作为其父li元素的第一个子元素的任何元素。ul因此,该表达式通常可以选择多个元素。

于 2013-04-06T19:44:23.930 回答
1

这是您的操作方法:

List<WebElement> items = driver.findElements(By.cssSelector("ul li"));
if ( items.size() > 0 ) {
  for ( WebElement we: items ) {
   System.out.println( we.getText() );
  }
}
于 2013-04-06T21:09:00.870 回答