微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-首次加载页面时,webdriver需要很长时间才能找到第一个元素

我在使用selenium webdriver / java进行应用程序测试时,遇到了一个奇怪的问题.

当我得到一个URL,然后尝试查找或等待一个元素时,执行该过程将花费近6分钟的时间.

driver.manage().timeouts().pageLoadTimeout(90, TimeUnit.SECONDS);

driver.get(getApplicationURL());

Boolean isPresent = driverUtil.waitAndCheckPresent(20,By.xpath(<my xpath>));
.......................................................
 .................................................



      public boolean waitAndCheckPresent(int timeout, By by){

        try {
            webdriverwait wait = new webdriverwait(driver, timeout);
            WebElement elem = wait.until(ExpectedConditions
                    .visibilityOfElementLocated(by));
            return true;
        } catch (Exception e) {
            return false;  
        }

    }

细节:-
FF版本:-17-24
网路驱动程式:-2.35.0

我不知道为什么它要挂这么长时间才能继续,正如我提到的那样,只有在页面首次加载时,我才会看到此信息,[该页面登录页面,输入字段在10秒内出现]

解决方法:

您仍然可以通过等待预期元素的存在(而不是等待可见性)达5-8秒,然后发送window.stop()JS脚本(停止加载其他元素)来加快脚本的执行速度,而无需等待整个页面的加载
或在5-8秒后捕获页面加载的超时异常,然后调用window.stop()

因为如果页面未采用延迟加载技术(仅加载可见元素并且仅在滚动后才加载元素的其余部分),它将在返回window.ready状态之前加载每个元素,因此如果其中任何元素花费较长的时间渲染,则它会变慢.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐