使用WebDriver在列表标记中查找元素

时间:2013-10-02 07:38:08

标签: xpath selenium selenium-webdriver

我正在尝试遍历列表标记并收集所有元素,如果它与给定字符串匹配,则单击特定项目。

HTML代码为:

<ul multiple="multiple" name="optionsTab" taborder="1" class="focus">
   <li value="2" selected="selected">option1</li>
   <li value="5" selected="selected">option2</li>
   <input id="form-3-input-5" name="optionsTab" type="hidden" value= "2,5">
</ul>

Java代码:

webdriver1.findElement(By.xpath("//ul/li[1]")).click(); 

直接点击option1给我一个elementNotFoundException。

找到li标签并访问列表的最佳方法是什么。

3 个答案:

答案 0 :(得分:1)

最简单的情况是首先找到列表Webelemebt list = driver.findElement(By.name("optionsTab"));,然后找到该列表中的元素List<Webelement> elements = list.findElements(By.xpath("//li"));

然后,您可以迭代集合中的每个元素,以找到所需的元素。

答案 1 :(得分:1)

您还可以使用以下 XPATH

 //ul[@name='optionsTab']/li[1]

答案 2 :(得分:0)

您还可以使用以下CssSelector方法:

webdriver1.findElement(By.CssSelector( “UL [名= 'optionsTab']&GT;李[值= '2']”))点击();

如果你不断获得ElementNotFound异常,你确定这个元素已经加载了吗?你总是可以尝试等待元素吗?