【问题标题】:How force Selenium to not wait for page to load如何强制 Selenium 不等待页面加载
【发布时间】:2014-02-20 00:46:29
【问题描述】:

我正在 Firefox 27 版中使用 Selenium IDE 2.5.0 版为 Web 应用程序构建一个测试套件。我遇到的问题是我正在测试的一些 url 根本不返回任何 HTML 内容。如果没有向它们发布正确的数据,这些 servlet 就“什么也不说”。测试时,Selenium 似乎无限期地卡在这些 url 上。也就是说,当测试运行时,处理该页面的步骤(verifyText 或其他)将永远挂起并停止运行测试。我试过'setTimeout','waitFor{thing}'。这些都没有任何区别。就目前而言,发生这种情况的所有 url 都是不可测试的。有谁知道一些解决方法或其他对 Selenium 友好的技术来强制该工具不等待从服务器发回的内容?我宁愿不跳入 Java 并从这个角度来做这一切。所以我的问题是: 有没有办法强制 Selenium IDE 不等待服务器以任何方式响应。如果是这样,那一步就失败了。

这是一个卡住的例子。在这个例子中,它挂在第三行/项目上:

    <tr>
    <td>setTimeout</td>
    <td>1000</td>
    <td></td>
    </tr>
    <tr>
    <td>open</td>
    <td>${base_url}/someServlet</td>
    <td></td>
    </tr>
    <tr>
    <td>verifyText</td>
    <td>css=h2</td>
    <td>SomeText</td>
    </tr>

谢谢!

【问题讨论】:

    标签: selenium-ide


    【解决方案1】:

    我最终通过将所有测试转换为 Java 端 Selenium WebDriver 代码来解决这个问题。测试不再像以前那样在那些地方无法确定地吸吮。这不是一个理想的解决方案,但它确实解决了悬挂测试问题。以下是测试中的代码示例:

        driver = new FirefoxDriver();
    
        driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    
        driver.get(baseUrl + "/?SomeParam=x");
    
        assertTrue(isElementPresent(By.linkText(LOG_IN_TEXT)));
    

    【讨论】:

      猜你喜欢
      • 2018-03-20
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 2016-12-25
      • 2014-09-26
      • 2017-11-10
      • 2011-08-17
      相关资源
      最近更新 更多