我有这段HTML:
<tr>
<td class="has-checkbox">
<input id="abc" class=... value=...>
</td>
<td class="has-label">
<label for="abc">Name1234</label>
</td>
<tr>
我需要创建一个xpath,根据标签中的whats获取输入元素,在本例中为Name1234。
换句话说,对于这种情况,我需要一个输入元素的xpath,并且路径必须包含Name1234作为其变量。
任何可以帮助我的人?
答案 0 :(得分:2)
//input[@id = //label[. = 'Name1234']/@for]
选择input
个元素,id
属性值等于for
元素的label
属性值,其中内容为{{} 1}}。
答案 1 :(得分:1)
您可以使用/..
,此语法用于移回父节点。在你的情况下:
//label[.='Name1234']/../../td/input
由于input
标记是另一个td
标记的子标记,因此您必须向后移动2次。
Here是其他人的介绍和关于你应该阅读的例子。
答案 2 :(得分:0)
以下是使用Axes parent
和preceding-sibling
:
//label[.='Name1234']/parent::td/preceding-sibling::td/input
答案 3 :(得分:0)
它并不像你想象的那么复杂:
xpath=//tr[//label[.="Name1234"]]//input
换句话说,你正在寻找&#39; tr&#39;其中包含&#39;标签&#39;用文字&#34; Name1234&#34;。如果条件为真,那么您将获得“输入”信息。元件