0

所以假设我的结构在某些时候看起来像这样:

..........
<td>
  [...]
  <input value="abcabc">
  [...]
</td>
[...]
<td></td>
[...]
<td>
  <input id="booboobooboo01">
  <div></div> <=======I want to click this!
</td>
.........

我需要单击该 div,但我需要确保它与包含输入的 td 位于同一行value="abcabc"。我也知道我需要单击的 div(它没有 id 或我可以使用的任何其他相关属性)位于与第一个 td 相同级别的 td 中,紧随 id CONTAINING "boo" 的输入之后(动态生成的,我只知道id的根部分)。td 不包含我可以使用的任何相关内容。就 xpath 而言,这是我尝试过的:

//input[@value='abcabc']/../td/input[contains(@id,'boo')]/following-sibling::div

//input[@value='abcabc']/..//td/input[contains(@id,'boo')]/following-sibling::div

当然,它们都不起作用(找不到元素)。我想知道是否有选择该 div 的方法以及如何选择。

编辑://input[@value='abcabc']/../../td/input[contains(@id,'boo')]/following-sibling::div是正确的方法。这是由接受了答案的人提出的。另请注意,他提供了一种略有不同的方法。有关详细信息,请参阅他的答案。

4

2 回答 2

3

尝试

//input[@value='abcabc']/ancestor::tr[1]/td/input[contains(@id,'boo')]/following-sibling::div[1]

请注意,//input[@value='abcabc']/..仅适用于 parent <td>,这就是您的不起作用的原因。

于 2012-06-06T09:20:21.743 回答
1

另一个可能有效的 XPath 更简单一些:

//input[@id='booboobooboo01']/../div[1]
于 2012-06-06T09:23:27.563 回答