<div class="btm0">Question 1
</div><span class="small"></span>
<span id="form2">
<span id="form2:j_idt4598" style="display: none;"></span><ul id="form2:radioButton" class="controls full-width">
<li>
<input class=" firepath-matching-node" name="form2:radioButton" id="form2:radioButton:0" type="radio"><label for="form2:radioButton:0"> Yes</label></li>
<li>
<input class=" firepath-matching-node" name="form2:radioButton" id="form2:radioButton:1" type="radio"><label for="form2:radioButton:1"> No</label></li>
</ul>
<span id="form2:errMessage"></span>
</span>
<div class="btm0">Question 2
</div><span class="small"></span>
<span id="form1">
<span id="form1:j_idt4617" style="display: none;"></span><ul id="form1:radioButton" class="controls full-width">
<li>
<input class=" firepath-matching-node" name="form1:radioButton" id="form1:radioButton:0" type="radio"><label for="form1:radioButton:0"> Yes</label></li>
<li>
<input class=" firepath-matching-node" name="form1:radioButton" id="form1:radioButton:1" type="radio"><label for="form1:radioButton:1"> No</label>
我上面有一个带有标签和选项按钮的简单页面。
我想使用XPath选择'问题1 - 是'。
是否有一种简单的方法可以创建一个唯一的XPath,它将选择正确的“YES”选项(可能是问题1或问题2)?我不想硬编码XPath。
我尝试了部分解决方案,但我只选择了第二个“是”选项:
//*[contains(text(),'Question 1')]/following::label[contains(text(),'Yes')]
答案 0 :(得分:2)
不确定这是否是您要求的,但如果您想将XPath表达式的范围限制为$(".logo").css('background-image', 'url("test(1).png")');
之后的2 label
个元素,则可以使用{{1功能:
div
如果这不是您想要的,请尝试澄清您的问题,或许可以提供一些样本结果。
答案 1 :(得分:0)
尝试后我能够得到一些解决方案,但我对答案真的不满意,因为我必须根据选项按钮的“是”或“否”更改我的xpath
表示是:
//*[contains(text(),'Question 1')]/./following::li[1]/label[contains(text(),'Yes')]
表示NO:
//*[contains(text(),'Question 1')]/./following::li[2]/label[contains(text(),'Yes')]
正如您在上述解决方案中看到的,我必须切换li[]
。
但是通过上述解决方案,我能够确定选项。