我正在使用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>
谢谢!
答案 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)));