我有以下内容:
..
<div id="list">
<div>
<input id="input_randomnumber"/>
</div>
<div>
<label for="input_randomnumber">Text To Match</label>
</div>
</div>
..
我想选择输入,其中有一个带有特定文本的标签。我尝试使用xpath和前兄弟解决它,但我没有让它工作。如何将轴选择器用作过滤器?
显然,以下解决方案甚至无效:
(//div[@id="list"]/div/preceding-sibling::div[span[text()="Text To Match"]])/input
使用轴:
//div[@id = 'list']/div[following-sibling::div[1]/label = 'Text To Match']/input
使用@for和@id匹配,相当优雅(但性能?):
//input[@id = //label[text()="Text To Match"]/@for]
答案 0 :(得分:2)
我想你想要//div[@id = 'list']/div[following-sibling::div[1]/label = 'Text To Match']/input
。
答案 1 :(得分:1)
我想选择输入,其中有一个带有特定文本的标签。
这是你可以尝试的东西:
按<label>
的文字选择:
//input[@id = //label[text()="Text To Match"]/@for]
根据for
的{{1}}属性和<label>
的{{1}}属性进行选择:
id