Firefox 如何处理selenium崩溃

Firefox 如何处理selenium崩溃,firefox,selenium,process,selenium-rc,kill,Firefox,Selenium,Process,Selenium Rc,Kill,我目前正在使用每小时运行的selenium RC自动化测试。大多数情况下,一切运行都很顺利,但有时firefox会崩溃,或者selenium RC会挂起,由于这两个问题,测试没有继续,因此暂停。有人知道我如何在firefox.exe和/或java.exe(selenium实例)崩溃或挂起时杀死它们,以便恢复测试吗。我看到的问题是在firefox或selenium挂起时自动检测,并通过脚本自动杀死它 谢谢 我不确定是否有最终答案,但我可以提供一些想法: Selenium将暂停处理Firefox冻

我目前正在使用每小时运行的selenium RC自动化测试。大多数情况下,一切运行都很顺利,但有时firefox会崩溃,或者selenium RC会挂起,由于这两个问题,测试没有继续,因此暂停。有人知道我如何在firefox.exe和/或java.exe(selenium实例)崩溃或挂起时杀死它们,以便恢复测试吗。我看到的问题是在firefox或selenium挂起时自动检测,并通过脚本自动杀死它


谢谢

我不确定是否有最终答案,但我可以提供一些想法:

  • Selenium将暂停处理Firefox冻结。您应该仔细检查以确保设置正确且正常工作
  • 无论运行selenium的是什么(如巡航控制或team city),都应该有一个超时,这可能会关闭selenium服务器
  • 人们经常恢复每天重新启动一次服务器,并报告积极的结果。(不是我)
  • 我真的鼓励你找出这个问题的根本原因。硒会让人感到沮丧和不适,但在深入研究之后,我总是发现它是一个可以诊断的问题,可以解决(比如)

(Se将我们推向了可怕的极端:我们实际上编写了一个在TeamCity中触发的ssh作业,该作业登录到windows计算机并重新启动了selenium服务器。最终我们没有使用它。)

理想情况下,您的每个测试都将从干净的状态开始,没有现有的Firefox或IE进程运行。在test tearDown()方法中,应该关闭/退出浏览器。即使采用这种方法,有时也会出现不稳定的过程。如果您在Windows上通过Java RC运行Selenium服务器,则将此命令放入测试的startUp()方法可以帮助确保没有浏览器/实例正在运行:

Runtime.getRuntime().exec("TASKKILL /F /IM Firefox.exe");
Runtime.getRuntime().exec("TASKKILL /F /IM iexplore.exe");
至于检测它们何时崩溃,Firefox将显示一个提示对话框,指示崩溃。您可以通过外部工具(如AutoIT)以编程方式与此窗口交互,如果需要,可自动按下此对话框上的“确定”按钮。我发现构建一个在后台不断运行的外部AutoIT脚本来处理弹出窗口、崩溃、警告等非常有用