0

对于下面的代码

<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>

这是场景:

有一个文本字段,我在其中输入 name Staff,其中人员的相关值显示在动态列表框中,在上述场景中id是动态生成的,当我尝试通过class,它是所有元素都相同。

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

在此先感谢湿婆。

4

4 回答 4

0

使用 xpath。它应该工作

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

于 2013-07-31T01:14:39.857 回答
0

您是否尝试形成 aList然后直接使用它的第一个元素List

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

不过,我仍然不能 100% 确定一旦找到该元素后要对它做什么。List形成,然后遍历该列表并执行您需要的任何操作可能会更好element

于 2013-07-30T16:15:26.673 回答
0

我认为这应该有效

WebElement ele = webdriver.findElement(By.Xpath("//li[@class='user ui-menu-item'][1]"))
于 2013-07-31T06:19:20.983 回答
0

使用这个 xpath

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

来源:XPath 查询以获取元素的第 n 个实例

于 2013-07-30T18:34:35.893 回答