0

我有这段 html:

<tr>
  <td class="has-checkbox">
    <input id="abc" class=... value=...>
  </td>
  <td class="has-label">
    <label for="abc">Name1234</label>
  </td>
<tr>

我需要根据标签中的内容创建一个 xpath 来获取输入元素,在本例中为 Name1234。

换句话说,对于这种情况,我需要输入元素的 xpath,并且路径必须包含 Name1234 作为其变量。

任何人都可以在这里帮助我吗?

4

4 回答 4

2

//input[@id = //label[. = 'Name1234']/@for]选择属性值等于内容为的元素input的属性值的元素。idforlabelName1234

于 2012-05-14T11:34:52.423 回答
1

您可以使用/..,此语法用于移回父节点。在你的情况下:

//label[.='Name1234']/../../td/input

您必须向后移动 2 次,因为input标签是另一个标签的子td标签。

以下是有关您应该阅读的其他介绍和示例。

于 2015-05-22T09:46:18.547 回答
0

它并没有你想象的那么复杂:

xpath=//tr[//label[.="Name1234"]]//input

换句话说,您正在寻找包含带有文本“Name1234”的“标签”的“tr”。如果条件为真,您将获得“输入”元素

于 2015-04-14T16:28:38.710 回答
0

这是使用 Axesparent和的解决方案preceding-sibling

//label[.='Name1234']/parent::td/preceding-sibling::td/input

于 2012-05-14T13:31:54.827 回答