Xpath如何使用另一个元素文本值获取一个元素

时间:2014-03-25 19:12:30

标签: xml xpath

我正在尝试为自动化测试创建一个xpath。我有以下代码:

<span class="left-floated">
   <input class="PfcExecutiveBrief" type="checkbox" value="PfcExecutiveBrief" name="DocumentTypeResearch"/>
   <label for="PfcExecutiveBrief">Executive Brief</label>
  <br/>
   <input class="Memo" type="checkbox" value="PfcMemo" name="DocumentTypeResearch"/>
   <label for="PfcMemo">Memo</label>
  <br/>
   <input class="PfcOtherResearchForNaturalGasOrOil" type="checkbox" checked="checked" value="PfcOtherResearchForNaturalGasOrOil" name="DocumentTypeResearch" disabled=""/>
   <label for="PfcOtherResearchForNaturalGasOrOil">Other Research</label>
  <br/>
   <input class="PfcProfile" type="checkbox" value="PfcProfile" name="DocumentTypeResearch"/>
   <input type="hidden" value="PfcOtherResearchForNaturalGasOrOil" name="DocumentTypeResearch"/>
   <label for="PfcProfile">Profile</label>
  <br/>
</span>

我想创建xpath,帮助我检查所选标签的输入元素。所以我的问题是,如何为每个标签获得单个输入元素?

例如:if:

label[text()='Memo']

如何获得第二次输入等等。

1 个答案:

答案 0 :(得分:2)

虽然@for属性在此处被误用(it should point to the @id attribute),但您可以使用它来解析使用相同@value属性的匹配输入。

//input[@value=../label[text()='Memo']/@for]

如果标签可能位于文档中的任何位置(而不是像您的示例中那样是兄弟姐妹),您也可以再次从根目录进行搜索:

//input[@value=//label[text()='Memo']/@for]