【问题标题】:Get the first following div sibling获取下面的第一个 div 兄弟
【发布时间】:2015-04-29 17:51:44
【问题描述】:

我正在尝试编写 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 元素[包含 YES]。 我尝试这样做失败了:

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

请帮忙。

【问题讨论】:

    标签: html selenium xpath selenium-webdriver


    【解决方案1】:

    选择包含YES 的任何div 的后续兄弟div 元素的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)。

    【讨论】:

    • 感谢 Lingamurthy 的回答。我认为我提出的问题是错误的。请查看已编辑的。
    • @Nik_stack 因此,您只想选择div 的第一个后续兄弟,该兄弟的div 子代的值为YES。是吗? @id 必须在这里做点什么吗?
    • 是的。 @id 在这里没有任何作用。
    • @Nik_stack 请看我的编辑。我希望这样做。
    • 这个答案是正确的 +1,@Nik_stack 现在你应该接受这个答案或 har07 的答案。
    【解决方案2】:

    你可以试试这个方法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      相关资源
      最近更新 更多