有没有办法 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 ]