我有以下列表:
<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
答案 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() );
}
}