微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Selenium测试Ajax应用程序并保持稳定?

我们的团队一直在用Selenium测试我们的应用程序,因为它是由 JavaScript驱动的,我们总是遇到测试偶尔失败的问题.随着测试次数增加,至少有两次测试在完整运行中失败的可能性已经确定.

我们最近发现的是,我们可能有竞争条件,在初始化JavaScript有机会将事件处理程序附加到被单击的元素之前,selenium将单击链接.当然,在这一点上,我们正在寻找的效果不会发生,我们会得到一个失败的测试.

暂时我们在点击之前添加了一点延迟,以便初始化JavaScript代码完成时间,这显然有点乱,为整体测试执行增加了时间,并且不保证测试不会失败所以我们正在寻找更好的解决方案.

到目前为止,我们提出的最好的想法是将一个隐藏的元素注入到Selenium可以等待的DOM中,然后在触发click事件之前知道它已准备就绪.当我们处理异步事件,删除添加元素时,这将是开发人员时间方面的大量额外开销.此外,它还为我们的页面添加了额外的东西,而这些东西对于应用程

有没有人有更好的策略?你有什么办法有效地解决这个问题?

解决方法

我确实喜欢你:添加一些延迟并等待页面上出现一些元素.我完全没问题.也许切换到Webdriver / selenium 2.0会有所帮助.如果您使用内存数据库或在测试之间共享相同的selenium / selenium服务器,或者甚至使用并行化(例如,使用TestNG,则可以轻松),可以减少测试执行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐