![由 selenium 启动的 Firefox 实例偶尔会无响应](https://linux22.com/image/634810/%E7%94%B1%20selenium%20%E5%90%AF%E5%8A%A8%E7%9A%84%20Firefox%20%E5%AE%9E%E4%BE%8B%E5%81%B6%E5%B0%94%E4%BC%9A%E6%97%A0%E5%93%8D%E5%BA%94.png)
我在 Tomcat 7、Ubuntu 14.04 下运行一个 Web 应用程序,它使用 Java Selenium 驱动程序启动 Firefox 实例(当前版本为 29)来截取本地定义的简单网页的屏幕截图。
有时,Firefox 会变得无响应。发生这种情况时,会列出一个“已停用”的 Firefox 实例,ps
如下所示:
$ ps -elfwww | grep irefox
0 S tomcat7 18004 17574 0 80 0 - 100490 futex_ 05:31 ? 00:00:01 /usr/lib/firefox/firefox -silent
1 Z tomcat7 18010 18004 0 80 0 - 0 exit 05:31 ? 00:00:00 [firefox] <defunct>
当 Firefox 启动并正常运行时,它看起来更像这样:
$ ps -elfwww | grep irefox
0 R tomcat7 19542 17574 38 80 0 - 156275 ? 09:38 ? 00:00:08 /usr/lib/firefox/firefox -foreground
我对这两种情况下传递给 Firefox 的不同命令行选项感到困惑。为什么是“-silent”而不是“-foreground”?可以做些什么来防止这种情况发生?
我没有看到应用程序错误日志中打印有关硒的任何消息。
答案1
这似乎是最新版本的 Firefox(17+;人们说它适用于 Firefox 17.0,但我没有尝试过)的一个常见问题(我也遇到了),而且事实上你正在为要下载的每个网页创建一个新的浏览器实例。
我所做的以及看似常见的逻辑是创建一个 Firefox 实例,用它下载所有网页,最后关闭浏览器。