最后在大型DOM中搜索元素

时间:2016-10-18 15:48:06

标签: selenium dom xpath selenium-webdriver

我在具有大DOM(1000行,约10,000个节点)的页面上使用selenium。我试图确定一个元素是否存在,它几乎位于DOM的最末端。

结构是这样的:

<html>
    <body>
        <section></section>
        <script></script>
        <span>
            // several more wrappers around the UL
            <ul id="itemsList"></ul>
        </span>
    </body>
</html>

section节点包含99%的行。

我知道UL将永远在同一个地方。

我使用的XPath如下:

//body/span//ul

如果UL存在,则搜索小于500毫秒。但如果UL不存在,则搜索将花费2-5秒。我不明白这一点,因为我希望遍历以相同的方式发生并花费相同的时间。

当我使用selenium时,我也尝试使用By.Id,但这会产生相同的结果。

1 个答案:

答案 0 :(得分:0)

可能是因为代码中的显式等待命令。如果selenium可以在隐式等待中找到元素,那么它将继续下一步但如果它在隐式等待时间内找不到该元素,则会检查显式等待,如果已给出显式等待这个元素Selenium会等到显式等待时间才会抛出异常。