Selenium Webdriver代码,用于在类</li>下找到<li>

时间:2014-02-07 15:14:51

标签: java selenium

如何使用类名来获取带有Selenium WebDriver(Java)的<li>中的文本,而不是使用xpath或css定位器。

<body><table width="599" align="center" border="0" cellSpacing="0"
       cellPadding="0"><tbody>

<tr>
<td width="599" class="error">
<font color="#ff0000">
<span class="errorHdr">The following errors occurred:</span>
<p></p><ul><ul><li>Invalid or incorrect user name entered.</li>
<li>Incorrect password entered. Passwords are case-sensitive. Please try again.</li>
</ul></ul>
</font>
</td>
</tr>    
</tbody></table></body></html>

2 个答案:

答案 0 :(得分:1)

不,你不能使用类名获取li文本。使用xpath或cssSelector有什么问题?这些是为你的情况而制作的。无论如何只是为了迎合你的想法,还有另一种方法,使用标记名,如下所述:

List<WebElement> allLi = driver.findElements(By.tagName("li"));
for(WebElement eachLi:allLi){
    String tmp = eachLi.getText();
    System.out.println("Text in li: "+tmp); //You may match for your required text, before printing/using it.
}

答案 1 :(得分:0)

没有使用XPath或CSS选择器就无法获取li文本。另外你为什么不愿意使用呢?我个人更喜欢CSS而不是XPath。以下是我将如何做到这一点。基本上,我使用li

抓取td下的所有classname error元素
List<WebElement> lis =  driver.findElements(By.cssSelector("td.error li"));
for(WebElement li:lis){
 System.out.println(li.getText());
}