有没有办法 select 使用 XPath 的特定父项?
Is there a way to select a specific parent using XPath?
根据我到目前为止所做的阅读,我认为这是不可能的,但在极少数情况下,这里是:
鉴于以下过于简化 HTML(基于从 CMS 生成的 HTML,因此无法真正控制它)
<div class="random">
<div class="random"> <-- This is the one I want
<div class="random">
<div class="random">
<span class="random">
<input id="experiment-randomnumbers-textinput-2">
</span>
</div>
</div>
</div>
</div>
我拼凑了以下 XPath 表达式来获取我想要的节点:
//input[contains(@id,'experiments') and contains(@id,'textinput-2')]/parent::span/parent::div/parent::div/parent::div
问题是,有没有更简洁的方法来做到这一点?我假设无法在 CSS?
中完成
干杯
罗布
设BASE_XPATH
= //input[contains(@id,'experiments') and contains(@id,'textinput-2')]
.
那么,如果目标是四个祖先以上,并且你不关心祖先元素的名字:
BASE_XPATH/../../../..
如果在祖先中存在独特的条件(在标记的省略部分中):
BASE_XPATH/ancestor::*[ UNIQUE_PREDICATE ]
根据我到目前为止所做的阅读,我认为这是不可能的,但在极少数情况下,这里是:
鉴于以下过于简化 HTML(基于从 CMS 生成的 HTML,因此无法真正控制它)
<div class="random">
<div class="random"> <-- This is the one I want
<div class="random">
<div class="random">
<span class="random">
<input id="experiment-randomnumbers-textinput-2">
</span>
</div>
</div>
</div>
</div>
我拼凑了以下 XPath 表达式来获取我想要的节点:
//input[contains(@id,'experiments') and contains(@id,'textinput-2')]/parent::span/parent::div/parent::div/parent::div
问题是,有没有更简洁的方法来做到这一点?我假设无法在 CSS?
中完成干杯
罗布
设BASE_XPATH
= //input[contains(@id,'experiments') and contains(@id,'textinput-2')]
.
那么,如果目标是四个祖先以上,并且你不关心祖先元素的名字:
BASE_XPATH/../../../..
如果在祖先中存在独特的条件(在标记的省略部分中):
BASE_XPATH/ancestor::*[ UNIQUE_PREDICATE ]