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

时间:2014-06-26 12:40:52

标签: java firefox selenium automation 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 Webdriver: - 2.35.0

我不知道为什么它会在继续之前停留这么久,正如我所提到的,我只在第一次加载页面时看到这一点,[页面是一个登录页面,在10秒内出现输入字段]

1 个答案:

答案 0 :(得分:0)

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

因为如果页面没有采用延迟加载技术(仅加载可见元素并仅在滚动后加载元素的其余部分),它会在返回window.ready状态之前加载每个元素,因此如果任何元素需要更长的时间,它将会更慢渲染。