如何找到列表元素(Selenium)?

时间:2013-04-06 19:06:22

标签: java list xpath selenium nosuchelementexception

我有以下列表:

<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 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:2)

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

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

String item = element.getText()

答案 2 :(得分:2)

(//ul/li)[1]

这会选择XML文档li元素中的第一个元素,该元素是ul元素的子元素

请注意表达式

//ul/li[1]

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

答案 3 :(得分:1)

以下是您的操作方法:

List<WebElement> items = driver.findElements(By.cssSelector("ul li"));
if ( items.size() > 0 ) {
  for ( WebElement we: items ) {
   System.out.println( we.getText() );
  }
}