java - Selenium - 等待网络流量

标签 java networking selenium

我们将 Selenium 与 Java API 和一些 Javascript 用户扩展一起使用。我们在我们的应用程序中使用了很多 AJAX 调用。我们的许多测试随机失败,因为有时 AJAX 调用完成速度比其他时间慢,因此页面未完全加载。我们通过等待特定元素或 Thread.sleep 来解决这个问题。我试图找到一种方法来代替等待网络流量完成。这样我们就可以这样做:

selenium.click("some JS button");
selenium.waitForNetwork();
assertTrue(something);

这样我们就可以摆脱线程 hibernate ,并在服务器响应更快时让测试通过得更快,并且不会有那么多测试由于计时问题而失败。

我一直无法找到一种方法来执行此搜索 Google。有谁知道我们如何做到这一点? (最好通过 Javascript 或 Java API,但欢迎所有建议)。

注意:“waitFor”的其他变体不是我要找的。我们已经在点击和其他方面使用了这些。我正在寻找等待网络流量的东西。感谢所有反馈,我会尝试一些建议,但我仍然愿意接受其他想法。

谢谢。

最佳答案

Selenium 中可用的 waitFor 类型很少。在您的测试用例中,如果您知道特定文本会出现在页面加载时,您可以使用 waitForText。如果有不同的 DOM 元素被填充(通过 Ajax/pageload),您可以依次添加 waitForText。

关于java - Selenium - 等待网络流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4110588/

相关文章:

java - 尝试返回数组之和,方法调用错误

java - 在 GAE 数据存储中使用投影查询时,返回 null 而不是字符串值 (Java)

ios - 通过 TCP 连接异步发送文件

java - 使用 selenium 时,尽管切换了框架,但确实无法在 Indeed 上弹出框架时单击任何内容

java - Webdriver/Selenium 2.0 API 不适用于 Firefox 4

python - 在 Python 上使用 Selenium 来操作 Tor。由于未知原因不起作用

java - OSGI Felix 容器正在初始化模拟私有(private)字段

java - JPA更新查询问题

spring - 通过https对连接进行故障排除

go - 连接后Go TCP服务器始终抛出EOF