如何强制Selenium不等待页面加载

时间:2014-02-12 17:00:17

标签: selenium-ide

我正在使用Firefox版本27中的Selenium IDE ver 2.5.0为Web应用程序构建测试套件。我遇到的问题是我正在测试的一些URL不会返回任何HTML内容。如果没有向他们发布正确的数据,这些是“什么都不说”的servlet。在测试时,似乎Selenium无限期地卡在这些网址上。也就是说,当运行测试时,处理该页面的步骤(verifyText或其他任何内容)将永远挂起并停止运行测试。我试过'setTimeout','waitFor {thing}'。这些都没有任何区别。因为它所有发生这种情况的网址都是不可测试的。有没有人知道一些解决方法,或其他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>

谢谢!

1 个答案:

答案 0 :(得分:0)

我最终通过将所有测试转换为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)));