我们将 Selenium 与 Java API 和一些 Javascript 用户扩展一起使用。我们在应用程序中使用了大量 AJAX 调用。我们的许多测试随机失败,因为有时 AJAX 调用完成得比其他时候慢,因此页面未完全加载。我们通过等待特定元素或 Thread.sleep 来解决这个问题。我试图找到一种方法来等待网络流量完成。这样我们就可以这样做:
selenium.click("some JS button");
selenium.waitForNetwork();
assertTrue(something);
这样我们就可以摆脱线程睡眠,并在服务器响应更快时让测试更快地通过,并且不会因为计时问题而导致太多测试失败。
我还没有找到一种方法来进行谷歌搜索。有谁知道我们如何实现这一目标? (最好通过 Javascript 或 Java API,但欢迎所有建议)。
注意:“waitFor”的其他变体不是我正在寻找的。我们已经在点击次数和其他事情中使用了它们。我正在寻找等待网络流量的东西。感谢您的所有反馈,我将尝试一些建议,但我仍然对其他想法持开放态度。
Thanks.
Selenium 中可用的 waitFor 类型很少。在您的测试用例中,如果您知道页面加载时会出现特定文本,您可以使用 waitForText。如果有不同的 DOM 元素被填充(通过 Ajax/pageload),您可以顺序添加 waitForText。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)