如何在XPath中使用索引

3

我有一个弹出窗口,其中有三个下拉菜单,每次生成弹出窗口时它们的id都是唯一的:

第一个元素:

<a aria-required="true" class="select" aria-disabled="false" aria-
describedby="5715:0-label" aria-haspopup="true" tabindex="0" role="button" 
title="" href="javascript:void(0);" data-aura-rendered-by="5733:0" data-
interactive-lib-uid="10">Stage 1 - Needs Assessment</a>

虽然我可以通过简单的 xpath="//*[@class='select'][1]" 识别上面的元素,但是其他两个看起来相同的元素(如下所示)无法像 //*[@class='select'][2] 这样通过索引进行识别,尝试使用 'following' 但没有成功,但我可能在语法上不正确。

我无法定位的下拉元素示例。

<a aria-required="false" class="select" aria-disabled="false" aria-
describedby="6280:0-label" aria-haspopup="true" tabindex="0" role="button" 
title="" href="javascript:void(0);" data-aura-rendered-by="6290:0" data-
interactive-lib-uid="16">--None--</a>

除了高级xpath知识外,还有什么想法吗?谢谢!

刚刚发现我有不同部分内的这些元素,'class="slds-grid mdp forcePageBlockSectionRow"',第一个下拉元素被识别(可能是]因为我在第一个弹出式部分内),我应该使用什么语法来获取xpath以定位第二个部分内的下拉菜单? - Jan Vasina
1个回答

4

//*[@class='select'][2] 只有在两个链接都是同一个父节点的子节点时才会返回所需节点,例如:

<div>
    <a class="select">Stage 1 - Needs Assessment</a>
    <a class="select">--None--</a>
</div>

如果链接是不同父元素的子元素,例如:
<div>
    <a class="select">Stage 1 - Needs Assessment</a>
</div>
<div>
    <a class="select">--None--</a>
</div>

你应该使用

(//*[@class='select'])[1]

首先

(//*[@class='select'])[2]

对于“秒”


非常感谢@Andersson,我已经准备好了。 - Jan Vasina

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接