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

Java 第一次加载页面时,webdriver需要很长时间才能找到第一个元素,java,firefox,selenium,automation,webdriver,Java,Firefox,Selenium,Automation,Webdriver,我正在使用SeleniumWebDriver/java进行应用程序测试,我面临一个奇怪的问题 当我获取一个URL,然后尝试查找或等待一个元素时,执行它需要很长时间,大约需要6分钟 driver.manage().timeouts().pageLoadTimeout(90, TimeUnit.SECONDS); driver.get(getApplicationURL()); Boolean isPresent = driverUtil.waitAndCheckPresent(20,By.xp

我正在使用SeleniumWebDriver/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秒钟内出现输入字段]

您仍然可以通过等待出现而不是等待预期元素的可见性5-8秒,然后发送window.stop JS script停止加载更多元素而不等待加载整个页面来加速脚本的执行 或者在5-8秒后捕获页面加载的超时异常,然后调用window.stop


因为如果页面没有采用延迟加载技术,只加载可见元素,只在滚动后加载元素的其余部分,那么它会在返回window.ready状态之前加载每个元素,因此如果任何元素的渲染时间较长,则速度会变慢。

调试并检查哪一行在调试后花费了这么多时间,我发现…只要有driver.find,或者控件正在等待某个元素,它就无法找到它…即使该元素存在,并且只有在UI登录页面出现和主页加载时才会发生这种情况,之后它才能正常工作…检查服务器,即您启动的Selenium服务器JAR正在执行的操作。它将记录处理的每个请求和响应。看看它在哪里卡住了。