0

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

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 标签和访问列表的最佳方法是什么。

4

3 回答 3

1

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

然后,您可以遍历集合中的每个元素以找到您想要的元素。

于 2013-10-02T08:15:19.343 回答
1

你也可以使用下面的XPATH

 //ul[@name='optionsTab']/li[1]
于 2013-10-02T08:20:38.997 回答
0

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

webdriver1.findElement(By.CssSelector("ul[name='optionsTab']>li[value='2']")).Click();

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

于 2013-10-02T11:57:38.450 回答