我的selenium测试失败了PHPUnit_Extensions_Selenium2TestCase_NoSeleniumException异常。但并非总是如此,并不总是在同一个元素上。
我怀疑这与执行速度有关,即执行选择器时元素尚不可见。
我搜索了SO,但主要找到涉及WebdriverWait的Java相关建议(据我所知,不在PHPUnit / Selenium中)或处理旧的Selenium RC命令,如waitForPageLoad等。
如何让这些测试更稳定?我应该在一个函数中包含元素的选择,该函数重复尝试(对于一定的迭代次数)来选择元素,在迭代之间使用sleep()吗?对此有什么共同/最佳实践?
答案 0 :(得分:0)
我想我发现了这个问题。我最初的想法,即硒需要更多时间来定位元素,似乎是不正确的。 selenium服务器花了一些时间做“执行:[查找元素:...”,但随后立即跟进“执行:[删除会话:...”。
这就解释了为什么sleep()或类似的东西对我的测试没有帮助。
Google搜索了一些,我发现了Google Groups discussion。 所以我现在的Selenium Server 2.26.0似乎不适用于我的FF 17.0。我通过安装ChromeDriver并在Chrome上反复运行我的测试进行了验证,每次都会通过。
所以现在我可以:
我真的不想降级,所以现在我将选择3并对Chrome进行测试。这只是我的功能测试的初始设置,所以稍后可以将测试扩展到多个浏览器。
编辑:现在再次使用Selenium 2.27.0
使用FireFox