我知道xpath中的祖先,但是这个祖先或自我是什么。 当我们必须使用祖先或自我。请给我任何例子。
答案 0 :(得分:7)
我认为轴名称是不言自明的。 ancestor
轴选择仅当前上下文元素的祖先,而ancestor-or-self
选择祖先和当前元素本身。例如,请考虑以下XML:
<root>
<item key="a">
<item key="b" target="true">
<context key="c" target="true"/>
</item>
</item>
</root>
使用ancestor
轴的以下xpath会找到项b
,因为它target
属性等于true
而b
是context
的祖先1}}元素。但是XPath不会选择context
元素本身,尽管target
等于true
:
//context/ancestor::*[@target='true']
xpath tester中上述XPath的输出:
Element='<item key="b" target="true">
<context key="c" target="true" />
</item>'
与ancestor-or-self
轴形成鲜明对比,后者将返回相同的context
元素:
//context/ancestor-or-self::*[@target='true']
第二个XPath的输出:
Element='<item key="b" target="true">
<context key="c" target="true" />
</item>'
Element='<context key="c" target="true" />'
答案 1 :(得分:0)
祖先和祖先是XPath Axes。轴是相对于当前节点的节点集。
祖先轴选择当前节点的所有祖先,即父亲,祖父母等,而祖先或自我选择当前节点和当前节点本身的所有祖先,即父亲,祖父母等。
Ancestor-or-self通常用于定位XML文档标签,或者用于XSLT,它是XML的转换语言,旨在将结构化文档转换为其他格式(如XML,HTML和纯文本)
我相信您可能不需要这些轴在Selenium Webdriver中找到XPath,因为它处理HTML标记而不是XML标记,并且还有许多其他XPath轴可能有助于查找元素。