从我迄今所做的阅读来看,我认为这是不可能的,但偶然的是,下面是这样说的:
考虑到以下过度简化的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来完成吗?
干杯
抢夺
发布于 2022-03-04 04:45:23
设BASE_XPATH = //input[contains(@id,'experiments') and contains(@id,'textinput-2')]。
然后,如果目标是四个祖先,并且您不关心祖先元素的名称:
BASE_XPATH/../../../..如果在祖先中有一个独特的条件(在标记的特定部分):
BASE_XPATH/ancestor::*[ UNIQUE_PREDICATE ]https://stackoverflow.com/questions/71346595
复制相似问题