有人可以告诉我是否正确解释了以下XPath:
driver.find_elements_by_xpath ("//span[contains(., 'Cardiovascular')]/parent::*/parent::*/descendant-or-self::node()/a/span"
更具体地说,有人可以告诉我/ parent :: * / parent是什么意思吗? / parent :: / descendant-or-self :: node()是什么意思?为什么我们在那里有node()函数
答案 0 :(得分:1)
差不多。
寻找{“ {1}}标签,它们的文本中包含“心血管”标签;找到他们的祖父母元素;然后在这些祖父母元素中,找到所有具有Foo
元素作为其父元素的span
元素。
答案 1 :(得分:1)
Michael Kay已经解释了XPath选择的内容。这是您其他问题的答案:
更具体地说,有人可以告诉我
/parent::*/parent
[sic]是什么意思吗?
parent::*
意味着选择上下文节点的父元素(*
与任何名称的元素匹配)。parent::*/parent::*
意味着选择上下文节点的祖父母元素。
/parent::/descendant-or-self::node()
[原文如此]是什么意思为什么在那里有node()作为函数
parent::*
的含义(并请注意,您忘记了*
)。descendant-or-self::node()
与.//node()
相同;它选择上下文节点及其所有后代。这里,node()
不是函数,而是node test。如果是element()
,它将只选择元素; comment()
,仅注释;等