Selenium - “Firefox已经运行”错误

时间:2010-01-04 14:40:18

标签: firefox testing selenium

我们正在使用硒进行一些测试。我们有专用的Windows XP VM,每个VM上有一个selenium RC服务器,并且该VM上没有运行其他进程。我们为每个测试打开和关闭一个selenium会话。测试总是在完成后调用selenium.stop()。很多次(我会说30个中有1个)一个测试挂起,当我查看已分配给它的机器的桌面时,我看到一个弹出窗口“Firefox已经在运行,但没有响应。要打开一个在新窗口中,您必须先关闭现有的Firefox进程,或重新启动系统。“

  • 我确信只有一个测试可以通信 在给定时间使用VM
  • 所有测试确保在完成后停止()硒。
  • 我们有非常详细的日志记录,而且 日志显示没有测试 在测试之前得到的问题 “firefox已经在运行”错误。
  • 获得此错误的测试是 任意的,因为它是正确的 在调用selenium.start()和之后 因此不是由任何特定的引起的 码。
  • 所有测试的拆解都是相同的

可能导致这种情况的原因,我该如何预防呢?

3 个答案:

答案 0 :(得分:3)

当Selenium运行集成测试时,它会为每个测试启动一个新的Firefox副本。如果测试卡住,并且现有的Firefox副本运行时使用相同的配置文件,则无法启动下一个。 (这是Firefox的限制,而不是Selenium。)你应该确保:

  • 您的拆解方法每次都使用Selenium.stop
  • 关闭浏览器
  • 您使用超时和WaitFor*()方法来限制测试执行其指示所花费的时间
  • 您正在使用单独的配置文件来运行Selenium(如果您没有更改任何设置,则应自动获取此配置文件),这与可能已在计算机上的任何其他Firefox配置文件不同

答案 1 :(得分:1)

也许尝试将环境变量MOZ_NO_REMOTE设置为1(或使用-no-remote开关)。

答案 2 :(得分:0)

我们发现在我们的情况下,这个原因与selenium完全无关 - firefox本身就遇到了麻烦,因为它运行在没有足够的CPU和\或RAM的机器上。我们升级了VM(例如增加了更多的RAM和CPU),问题几乎完全消失了。