【问题标题】:SeleniumQuery i.e. $.driver().get().navigate().to(url) is not waiting page to load completelySeleniumQuery 即 $.driver().get().navigate().to(url) 没有等待页面完全加载
【发布时间】:2019-03-06 04:46:57
【问题描述】:

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

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

我们的场景,

  1. 打开页面。
  2. 搜索登录控件,即用户和密码文本框
  3. 填写值并点击提交按钮。

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

  1. 等待,即 $("*[id='login.username']").waitUntil(5000).isPresent();
  2. 超时即 $.driver().get().manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
  3. static void waitForPageLoad(final WebDriver wdriver) { 最终 WebDriverWait 等待 = 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);
    

    }

【问题讨论】:

  • 您是否有一个通过 ajax 加载其内容的单页应用程序?
  • 不,它不是 SPA。
  • 好的。我已经使用 waituntil() 行测试了您的选择器,它适用于我的代码。能否提供更多的html代码?

标签: selenium


【解决方案1】:

您是否尝试在导航到 URL 后使用 Thread.sleep(ms)

【讨论】:

  • 感谢您的回复,但我们已经解决了问题,实际上我们的测试环境是在 aws 中设置的,以及如何重新启动 tomcat。所以我们通过更改 aws 配置解决了这个问题。
猜你喜欢
  • 2019-02-10
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多