包含previous-sibling或following-sibling的xpath是否应该是相同的标记?

时间:2016-06-09 13:30:44

标签: selenium xpath selenium-webdriver

假设我的HTML结构是:     

 <div class='parent'>

      <a class="child"> PI </a> 

      <div class="child>CP </div>  

      <a class="child>A </a>

      <a class="child>B </a>

  </div>

  父div有4个孩子,我需要点击子div。这是下面的   xpath有效吗?或者前面的兄弟姐妹意味着他们必须是相同的'a'标签。

//a[contains(text(),'A')]/preceding-sibling::div[contains(text(),'CP')]

1 个答案:

答案 0 :(得分:2)

您的XPath有效。 preceding-sibling轴选择器:

  

表示与上下文节点具有相同父节点的所有节点,并显示在源文档中的上下文节点之前。   如果上下文节点是属性节点或命名空间节点,则preceding-sibling轴为空

following-sibling相同,当然除外:

  

表示与上下文节点具有相同父节点的所有节点,并显示在源文档中的上下文节点之后。

来源: