我们正在使用硒进行一些测试。我们有专用的Windows XP VM,每个VM上有一个selenium RC服务器,并且该VM上没有运行其他进程。我们为每个测试打开和关闭一个selenium会话。测试总是在完成后调用selenium.stop()。很多次(我会说30个中有1个)一个测试挂起,当我查看已分配给它的机器的桌面时,我看到一个弹出窗口“Firefox已经在运行,但没有响应。要打开一个在新窗口中,您必须先关闭现有的Firefox进程,或重新启动系统。“
可能导致这种情况的原因,我该如何预防呢?
答案 0 :(得分:3)
当Selenium运行集成测试时,它会为每个测试启动一个新的Firefox副本。如果测试卡住,并且现有的Firefox副本运行时使用相同的配置文件,则无法启动下一个。 (这是Firefox的限制,而不是Selenium。)你应该确保:
Selenium.stop
WaitFor*()
方法来限制测试执行其指示所花费的时间答案 1 :(得分:1)
也许尝试将环境变量MOZ_NO_REMOTE
设置为1(或使用-no-remote
开关)。
答案 2 :(得分:0)
我们发现在我们的情况下,这个原因与selenium完全无关 - firefox本身就遇到了麻烦,因为它运行在没有足够的CPU和\或RAM的机器上。我们升级了VM(例如增加了更多的RAM和CPU),问题几乎完全消失了。