我们使用Seleniumquery-0.19.0进行硒测试 .

我们注意到$ .url()没有等待页面完全加载 . 我也试过$ .driver() . get() . navigate() . to(url);.

我们的场景,

  • 打开页面 .

  • 搜索登录控件,即用户和密码文本框

  • 填充值并单击“提交”按钮 .

在测试结果中,我们发现selenium无法找到用户名文本框 . 我们尝试过

  • 等待,即$("*[id='login.username']").waitUntil(5000).isPresent();

  • 超时,即$ .driver() . get() . manage() . timeouts() . pageLoadTimeout(60,TimeUnit.SECONDS);

  • static void waitForPageLoad(final WebDriver wdriver){final WebDriverWait wait = new WebDriverWait(wdriver,600);

final Function<WebDriver, Boolean> pageLoaded = new Function<WebDriver, Boolean>() {

    @Override
    public Boolean apply(final WebDriver input) {
        final Boolean result =
            ((JavascriptExecutor)input).executeScript("return document.readyState").equals("complete");
        LOG.info("Status of the Page : " + result);

        return result;
    }
};

wait.until(pageLoaded);

}