获得第一个以下div兄弟

时间:2015-04-29 06:47:21

标签: html selenium xpath selenium-webdriver

我正在尝试编写Xpath来唯一标识一个元素 该文件看起来像这样

<AAA>
   <div>   </div>
   <div>   </div>
   <div>
      <div id='d'>YES</div>
   </div>
   <div>   </div>  ---> Want to select based on the mentioned sibling condition
   <div>   </div>

</AAA>

我想选择跟随div元素兄弟的div元素,包含子div元素[含有]。 我试过这样做失败了:

//following-sibling::div[@id='d']/div[contains(. , 'YES')]

请帮忙。

2 个答案:

答案 0 :(得分:2)

选择包含div的任何div的以下同级YES元素的XPATH将是:

//div[contains(., 'YES')]/following-sibling::div

在您当前的XML中,第三个div及其子div都包含 YES 作为其值。孩子这里没有兄弟姐妹。 因此,只会选择最后两个div元素(它们是XML中第三个div的后续元素)。

修改

//div[div[contains(., 'YES')]]/following-sibling::div[1]

这会选择任意div的第一个以下同级div元素,其中包含子div(值 YES )。

答案 1 :(得分:2)

您可以尝试这种方式:

//div[div[@id='d' and contains(.,'YES')]]/following-sibling::div[1]