【问题标题】:How can I traverse to parent node from the current node in xpath?如何从xpath中的当前节点遍历到父节点?
【发布时间】:2020-07-10 04:33:54
【问题描述】:

我有一个基于类的 xpath,我正在尝试从当前找到它的父元素。

路径 1

/html/body/div[2]/div[2]/div/div[2]/div/div[2]/div[2]/div[1]/div/div/p[8]/b[2]/a

路径 2

/html/body/div[2]/div[2]/div/div[2]/div/div[2]/div[2]/div[1]/div/div/p[8]/b[2]

路径 1 也可以使用类名来表示,即“xyz”driver.find_element_by_xpath('//a[@class="xyz"]')

如何从当前节点遍历到父节点?

【问题讨论】:

标签: python html selenium xpath web-scraping


【解决方案1】:

问题的答案如何从当前节点遍历到父节点是:

  1. 在您的 xpath 中使用 /..。例如//a[@class="xyz"]/.. - 这将定位 a[@class="xyz"] 的直接父级

  2. /parent::*/parent::<tagname> - 您的 xpath 代码应为 //a[@class="xyz"]/parent::*

【讨论】:

  • 在当前节点中获取(打印)html标签怎么样?
  • @BalB,是什么意思?你想达到什么目的?如果您要在当前节点内打印标签,它将打印所有子标签而不是父标签。
【解决方案2】:

由于 XPath 文档,您可以使用以下几个选项:

//a[@class="xyz"]/parent::tagname - 只会选择当前节点的父元素

//a[@class="xyz"]/ancestor::tagname - 给你当前节点的所有祖先(父母、祖父母等)

//a[@class="xyz"]/preciding-sibling::tagname - 选择当前节点之前的所有兄弟节点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 2015-03-30
    • 2011-10-24
    • 2014-07-31
    相关资源
    最近更新 更多