XPath 选择下拉列表中的第一个元素
Posted
技术标签:
【中文标题】XPath 选择下拉列表中的第一个元素【英文标题】:XPath to select first element in a dropdown list 【发布时间】:2016-12-21 13:08:38 【问题描述】:我正在处理的下拉列表不是静态的。当前下拉列表中的值为:Lock1、Lock2、Lock3、Lock4。 由于这些是动态值,我想根据它在下拉列表中的位置编写我自己的 xpath。 我想选择 Lock1。
<div class="dropdown open">
<button class="btn btn-white dropdown-toggle btn-block" type="button">
<!-- react-text: 62 -->
Lock1
<!-- /react-text -->
<span class="glyphicon glyphicon-chevron-up"/>
</button>
<div class="dropdown-menu">
<div class="m-l-xs m-r-xs">
<div class="search">
<input type="text" placeholder="search"/>
<i class="icon icon-search"/>
</div>
</div>
<ul class="dropdown-list">
<li class="active">
<a title="Lock1">Lock1</a>
</li>
<li class="">
<a title="Lock2">Lock2</a>
</li>
<li class="">
<a title="Lock3">Lock3</a>
</li>
<li class="">
<a title="Lock4">Lock4</a>
</li>
</ul>
</div>
</div>
【问题讨论】:
给定这个输入示例,您请求的输出是什么?稍微不同的输入怎么样? 我想用 Xpath 选择 Lock1。 @renato vitolo 【参考方案1】:(//ul[@class='dropdown-list']/li[@class='active']/a)[1]
或
(//div[@class='dropdown-menu']/ul[@class='dropdown-list']/li[@class='active']/a)[1]
参考资料:
XPath Get first element of subset
XPath: Select first element with a specific attribute
【讨论】:
当我使用你的 xpaths 时,我收到一个异常:无法定位元素。但是,我已将您给定的路径编辑为: (//ul[@class='dropdown-list']/li[1])[1] 并且此 xpath 有效.. 感谢您的帮助 可能会引发异常,因为您的应用程序中没有一个li
元素具有class="active"
。【参考方案2】:
//ul/li[1]
返回Lock1
,这就是你想要的吗?
您可能希望更具体地使用 ul
或 li
类,但我会留给您。
PS:下次您请别人为您编写 XPath 表达式时,请确保您的输入有效(您缺少结束 </div>
)。
【讨论】:
我已经编辑了代码.. 但是,//ul/li[1] 没有选择 Lock1 什么代码?我确实将您的示例发布到在线 XPath 测试工具中,修复了标记并编写了该表达式来测试它。以上是关于XPath 选择下拉列表中的第一个元素的主要内容,如果未能解决你的问题,请参考以下文章
确定在 phptravels.net 站点中选择下拉列表的 xpath