无法单击动态列表中的元素

时间:2013-07-30 15:54:46

标签: selenium webdriver

以下代码

<li class="user ui-menu-item" role="presentation">
   <a id="ui-id-52" class="ui-corner-all" tabindex="-1">
   <em>User:</em>
       Staff User
   </a>
</li>

这是情景:

有一个文本字段,我在其中输入名称Staff,其中人员的相关值显示在动态列表框中,在上面的方案中,id是动态生成的,当我尝试按class选择值时,所有元素都相同。

我想要一个xpath表达式来选择列表中的第一个可用选项。我试过很多方面,比如包含和启动,但没有用。请让我知道你宝贵的建议。

先谢谢 希瓦。

4 个答案:

答案 0 :(得分:0)

您是否尝试组建List,然后直接使用List的第一个元素?

List<WebElement> list = driver.findElements(By.xpath("//li[@class(contains, 'user')]";
list[0].getText();

我仍然没有百分之百地确定你想要做什么,一旦你找到了它。形成List可能会更好,然后遍历该列表并执行每element所需的任何操作。

答案 1 :(得分:0)

使用此xpath

 "(.//a[@class='ui-corner-all'])[1]"

来源:XPath query to get nth instance of an element

答案 2 :(得分:0)

使用xpath。它应该工作

// li [@role ='presentation'] // a [1]

答案 3 :(得分:0)

我认为这应该有用

WebElement ele = webdriver.findElement(By.Xpath("//li[@class='user ui-menu-item'][1]"))