使用Selenium,我可以找到子元素和父元素。如何从指定的父母那里得到一个孩子的深度?

这是HTML的一小部分

<div class="header">
    <div></div>
    <div></div>
        <div>
            <ul>
                <li>
                    <img />
                </li>
            </ul>
        </div>
    <div></div>
    <div></div>
</div>


这是我用来查找img标签父元素的xpath。

document.evaluate('../ancestor::div[contains(concat(" ", normalize-space(@class), " "), " header ")]', $('img')[0], null, XPathResult.ANY_UNORDERED_NODE_TYPE, null)


因此,我现在使用xpath来计算父级和子级之间的元素数量。我知道xpath中的count方法,但是我对如何仍然可以做到这一点没有经验。结果应该是父级距离标签5级。

最佳答案

我想第二个@benjamind的回答是,直接在XPath中执行此操作可能有点困难。但是,我们可能会使用一个小技巧:您可以根据img标签到根标签的深度与父标签到根标签的深度之间的差来计算所需的深度。尝试这个:

count(ancestor::*) - count(ancestor::div[contains(concat(' ', normalize-space(@class), ' '), ' header ')][1]/ancestor::*)

关于javascript - 如何使用xpath从父级计算子级元素的深度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20124213/

10-09 22:16