如何在Linux上无头运行Firefox(即不需要libgtk-x11-2.0.so.0)?


17

我已经拥有Dreamhost共享托管服务,并且我正在尝试在Selenium上无头运行Firefox 3.0。

尝试运行它(~/local/bin/firefox/firefox)时,出现以下错误消息:

error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory

如何在不需要此共享库文件的情况下在Linux上运行Firefox?

Answers:


8

我知道这是一个相当古老的问题,但是我想添加一个更新的答案,因为我是在Google的直接指导下找到的,因此必须搜索一段时间才能找到答案。

从Firefox 57开始,只需安装Firefox并运行以下命令,即可在无头模式下运行:

firefox -headless http://test.com/

请在此处查看Firefox开发者文档。


优秀-感谢您添加最新的高质量答案;这正是Stack Exchange设计的目的。
Paul D. Waite

14

如果没有所有所需的Gtk库,就无法运行Firefox,但是通过安装这些库可以轻松解决。通常,您将通过软件包管理系统安装Firefox,这将提取所有必需的库。

要正常运行Firefox,您需要一个X服务器(这是显示窗口及其内容的部分,而不是像Gtk这样的应用程序,它们是应用程序用来构建内容的库)。那是您通常不会在服务器上运行的东西。在没有X服务器的情况下,您可以在Firefox中执行很多操作,我不知道Selenium是否是其中之一。

要在服务器上运行Firefox,请运行“虚拟” X服务器。一个简单的一个是的Xvfb(v irtual ˚F RAME b uffer X服务器)。在X.org服务器发行版中。用法示例:

Xvfb :19 -screen 0 1024x768x16 &
export DISPLAY=:19
firefox &

1
太好了,吉尔斯欢呼,就这样了。我还发现这些文章有助于Xvfb的运行:alittlemadness.com/2008/03/05/running-selenium-headlessblog.kabisa.nl/2010/05/24/…–
Paul D. Waite

7

你不能 它与X和Gtk +客户端库链接,我认为没有它们甚至不可能构建它。

即使在Firefox无头版本中,仍需要GTK +


2

由于Selenium是GUI测试工具,因此很难相信它可以在没有X的情况下工作。

因此,我最好的猜测是您的无头服务器需要X的安装,例如Gilles建议的安装。有许多类似的选择。


2

您可以

  • 在虚拟帧缓冲区中使用Firefox: xvfb-run -a firefox
  • SlimerJS(Firefox的嵌入式Gecko /渲染引擎)与xcfb一起使用,
  • 使用PhantomJS作为嵌入式WebKit,而无需通过GhostDriver进行显示和硒支持-如果WebKit适合您。

我认为您是说'xvfb-run -a ...',而不是xvfb,对吗?
库奇(Kutzi)

谢谢:-)也许在此期间发生了变化?
flob
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.