Selenium 无ID复选框的Xpath

Selenium 无ID复选框的Xpath,selenium,xpath,Selenium,Xpath,在不使用ID的情况下,我可以使用什么xpath来处理类似的事情?或者如果有更多的复选框,但刷新页面后ID仍然不同 <td class="player" style="vertical-align: top;"> <span class="gb-CheckBox"> <input id="gb-uid-120" type="checkbox" value="on" tabindex="0" style="background-color: rgb(255, 255,

在不使用ID的情况下,我可以使用什么xpath来处理类似的事情?或者如果有更多的复选框,但刷新页面后ID仍然不同

<td class="player" style="vertical-align: top;">
<span class="gb-CheckBox">
<input id="gb-uid-120" type="checkbox" value="on" tabindex="0" style="background-color: rgb(255, 255, 255);">
<label for="gb-uid-120"></label>
</span>
</td>

尝试以下操作:

//span[@class="gb-CheckBox"]/input[@type="checkbox"]
为什么不:

//input[@type='checkbox']
这应该足够了,并将选择所有复选框类型的输入。
如果只需要从某个区域开始,则需要通过在前面添加另一个选择器来添加约束,如:

//div[@class='my_prefered_area']//input[@type='checkbox']
获取选择器的另一种方法是使用id的pare,它不会像以下那样更改:

//input[contains(@id, 'gb-uid')]
当然,您也可以为复选框类型添加限制:

//input[contains(@id, 'gb-uid')][@type='checkbox']

您还可以使用
cssSelector
而不是
xpath
轻松找到此复选框,这将比下面快得多:-

td.player > span.gb-CheckBox > input[type='checkbox']

似乎你得到了答案,因为上面提到的大多数方法都是正确的

使用CSS更正第一条路径:


td.player>span.gb复选框>输入[type='CheckBox']
有两个复选框元素具有相同的
HTML
,只有
id
值不同?你能澄清一下这一刻吗?你是想找到一个特定的
输入或全部输入,还是想找到对否决票的任何解释??我知道OP需要xpath,但这也可以,因为selenium还支持cssSelector来定位和元素,这是一个更好的建议。因此,请提供必要的意见,如果你正在寻找这个答案是不正确的。谢天谢地,我没有投你的票。。。但是,我试过这种方法,但它对我不起作用…@vb381你能分享一下它不起作用的意思吗??是否存在任何异常或其他情况?我需要检查复选框是否选中,或者有时单击其中的一些复选框。但是我有更多的复选框,它们都有相同的类,只是ID不同,但不是固定的。这也是在弹出窗口中,如果我尝试了一些xpath,它的复选框会出现在主页面上,而不是我的“弹出”窗口中。你需要从弹出窗口中选择特定的复选框。如果需要检查它们,请查看是否有check()方法,如果没有,请创建一个。