菜鸟的复杂xpath

时间:2012-05-14 10:16:48

标签: xpath

我有这段HT​​ML:

<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作为其变量。

任何可以帮助我的人?​​

4 个答案:

答案 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 parentpreceding-sibling

的解决方案

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

答案 3 :(得分:0)

它并不像你想象的那么复杂:

xpath=//tr[//label[.="Name1234"]]//input
换句话说,你正在寻找&#39; tr&#39;其中包含&#39;标签&#39;用文字&#34; Name1234&#34;。如果条件为真,那么您将获得“输入”信息。元件