我目前正在使用每小时运行的硒RC自动化测试。一切都运行顺利,但有时候火狐会崩溃或硒RC只会挂起,因为这两个问题,测试不会继续,而且会停滞不前。有谁知道如何使firefox.exe和/或java.exe(selenium实例)在崩溃或挂起时被杀死,因此测试可以恢复。我看到的问题是当firefox或selenium挂起时自动检测并自动通过脚本将其杀死。
谢谢!
答案 0 :(得分:2)
理想情况下,每个测试都将从干净状态开始,没有运行现有的Firefox或IE进程。在您的测试tearDown()方法中,您应该关闭/退出浏览器。即使采用这种方法,有时候,杂散进程仍然可以进入。如果您在Windows上运行Selenium服务器,通过Java RC,将此命令放在测试的startUp()方法中可以帮助确保没有运行任何浏览器/实例: / p>
Runtime.getRuntime().exec("TASKKILL /F /IM Firefox.exe");
Runtime.getRuntime().exec("TASKKILL /F /IM iexplore.exe");
至于检测到它们何时崩溃,Firefox将显示一个警告对话框,指示崩溃。您可以通过外部工具(例如AutoIT)以编程方式与此窗口进行交互,如果需要,可以自动按下此对话框上的“确定”按钮。我发现构建一个在后台不断运行以处理弹出窗口,崩溃,警告等的外部AutoIT脚本非常有用。
答案 1 :(得分:1)
不确定我是否有最终答案,但我可以提供一些想法:
(Se推动我们走向可怕的极端:我们实际上写了一个在TeamCity中触发的ssh作业,登录到Windows机器并在那里重新启动了selenium服务器。最终我们没有使用它。)