使用XPath通过文本选择单选按钮

使用XPath通过文本选择单选按钮,xpath,Xpath,在尝试之后,我得到了一些解决方案,但我对答案并不满意,因为我必须根据选项按钮的是或否更改我的xpath 是的: //*[contains(text(),'Question 1')]/following::label[contains(text(),'Yes')] 如否: //*[contains(text(),'Question 1')]/./following::li[1]/label[contains(text(),'Yes')] 正如您在上述解决方案中看到的,我必须切换li[]的值 但

在尝试之后,我得到了一些解决方案,但我对答案并不满意,因为我必须根据选项按钮的是或否更改我的
xpath

是的:

//*[contains(text(),'Question 1')]/following::label[contains(text(),'Yes')]
如否:

//*[contains(text(),'Question 1')]/./following::li[1]/label[contains(text(),'Yes')]
正如您在上述解决方案中看到的,我必须切换
li[]
的值


但是有了上面的解决方案,我可以精确地找到选项。

我在尝试后得到了一些解决方案,但对答案真的不满意,因为我必须根据选项按钮的“是”或“否”更改我的
xpath

是的:

//*[contains(text(),'Question 1')]/following::label[contains(text(),'Yes')]
如否:

//*[contains(text(),'Question 1')]/./following::li[1]/label[contains(text(),'Yes')]
正如您在上述解决方案中看到的,我必须切换
li[]
的值


但是通过上述解决方案,我能够确定选项。

不确定这是否是您所要求的,但是如果您想将XPath表达式的范围限制为
div
之后的2个
标签
元素,您可以使用
position()
函数:

//*[contains(text(),'Question 1')]/./following::li[2]/label[contains(text(),'Yes')]

//div[contains(text(),'Question 1')]/following::label[position()不确定这是否是您要问的问题,但是如果您想将XPath表达式的范围限制在
div
之后的2个
label
元素,可以使用
position()
函数:

//*[contains(text(),'Question 1')]/./following::li[2]/label[contains(text(),'Yes')]

//div[contains(text(),'Question 1')]/following::label[position(),谢谢Markus,这是解决我问题的更好方法。谢谢Markus,这是解决我问题的更好方法。