2010-01-04 89 views
4

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

  • 我相信只有一个测试用虚拟机在给定时间
  • 通信 所有的测试,确保他们完成何时停止()的硒。
  • 我们有非常详细的日志记录,并且 日志显示在得到 “firefox已在运行”错误的测试之前没有任何测试有任何 问题。
  • 应该得到这个错误的测试 任意的,因为它调用selenium.start之后 发生()和 因此没有任何具体 代码引起的。
  • 的删除是所有测试

什么导致这个相同的,我该怎么预防呢?

+0

其他问题:它是否一直导致问题的*相同*测试,或者不同的问题?这个测试在做什么(你可以粘贴代码)?它是否做了与其他测试不同或不同的事情?这个测试的拆解设置是否做了不同或不寻常的事情? – 2010-01-04 20:59:40

+0

@John Feminella - 加入 – olamundo 2010-01-04 21:29:31

回答

0

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

+0

尽管实际上我有6 GB的RAM和空闲四核CPU,但我仍然收到相同的错误。 – Nowaker 2011-07-13 19:31:17

+0

@Damian Nowak - 当firefox打开得太快而没有给selenium创建的临时配置文件留下足够的时间时,也可能发生这种情况......这是我唯一的猜测... – olamundo 2011-08-10 11:32:04

2

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

  • 您的拆卸方法每次关闭浏览器Selenium.stop
  • 您使用超时和WaitFor*()方法来限制量测试可以花费执行指令的时间
  • 您正在使用单独的配置文件让Selenium运行(如果您没有更改任何设置,您应该自动运行),与任何其他可能已经启动的Firefox配置文件截然不同机器
+0

我想你的意思是selenium.stop(),不是吗? 此外,我正在积极监测测试 - 它正在调用stop(),它并没有挥之不去,正如你所说,我*希望*那个indees,因为没有任何东西在硒机上运行,​​没有硒该机器上的其他Firefox配置文件 – olamundo 2010-01-04 15:41:26

+0

对不起,是的,我的意思是停止()。另外,你能描述一下发生的事情的生命周期吗? *每一次新的测试都是以这种方式进行,还是仅在某些测试后才会发生?在什么情况下会发生?这是在Windows VM上吗? (编辑您的原始问题,以便人们可以提供帮助。) – 2010-01-04 15:54:42

+0

我尽我所能编辑了我的问题,请告诉我是否还有其他数据。 此外,我认为这使得你当前的答案不相关(因为你建议的场景是不可能的) – olamundo 2010-01-04 20:00:56

1

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

+0

听起来很有趣。你能否详细说明为什么应该修复这个错误? – olamundo 2010-01-06 11:53:57

+0

坦率地说,我不知道为什么这会起作用 - 只是它在过去为我解决了同样的问题。 MozillaZine知识库中的这个页面似乎是信息量最大的页面http://kb.mozillazine.org/Opening_a_new_instance_of_Firefox_with_another_profile – 2010-01-06 12:31:13

+0

似乎可以解决这个问题:Firefox不启动,因为已经有一个实例运行配置文件,该选项强制ff使用新配置文件启动新进程 – 2013-07-10 07:58:35

相关问题