我正在尝试为自动化测试创建一个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']
如何获得第二次输入等等。
答案 0 :(得分:2)
虽然@for
属性在此处被误用(it should point to the @id
attribute),但您可以使用它来解析使用相同@value
属性的匹配输入。
//input[@value=../label[text()='Memo']/@for]
如果标签可能位于文档中的任何位置(而不是像您的示例中那样是兄弟姐妹),您也可以再次从根目录进行搜索:
//input[@value=//label[text()='Memo']/@for]