Как я могу запустить Firefox в Linux без головы (то есть, не требуя libgtk-x11-2.0.so.0)?


17

У меня есть общий хостинг Dreamhost, и я пытаюсь без проблем запустить Firefox 3.0 на нем для использования с Selenium.

Когда я пытаюсь запустить его ( ~/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

Как я могу запустить Firefox в Linux, не требуя этот общий объектный файл?

Ответы:


8

Я знаю, что это довольно старый вопрос, но я хотел добавить более свежий ответ, так как меня направили сюда от Google, и мне пришлось некоторое время искать, чтобы найти ответ.

Начиная с Firefox 57, вы можете работать в автономном режиме, просто установив Firefox и запустив:

firefox -headless http://test.com/

Смотрите документацию по Firefox здесь.


Отлично - спасибо за добавление актуального, качественного ответа; это именно то, для чего предназначена Stack Exchange.
Пол Д. Уэйт

14

Вы не можете запустить Firefox без всех необходимых ему библиотек Gtk, но это легко решается путем установки библиотек. Обычно вы устанавливаете Firefox через систему управления пакетами, и это включает все необходимые библиотеки.

Для нормальной работы Firefox вам необходим X-сервер (это та часть, которая отображает окна и их содержимое, в отличие от таких вещей, как Gtk, которые являются библиотеками, которые приложение использует для создания контента). Это то, что вы обычно не запускаете на сервере. В Firefox очень мало вещей, которые вы можете делать без X-сервера, я не знаю, является ли Selenium одним из них.

Чтобы запустить Firefox на вашем сервере, запустите «виртуальный» X-сервер. Простой один Xvfb ( v irtual е Рэйм б uffer X - сервера). Это в дистрибутиве сервера X.org . Пример использования:

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

1
Отлично, ура Жиль, вот и все. Я также нашел эти статьи полезными для запуска Xvfb: alittlemadness.com/2008/03/05/running-selenium-headless и blog.kabisa.nl/2010/05/24/…
Пол Д. Уэйт,

7

Вы не можете; он связан с клиентскими библиотеками X и Gtk +, и я не думаю, что его даже можно построить без них.

Даже в безголовой версии Firefox GTK + все еще необходим .


2

Поскольку Selenium - инструмент для тестирования графического интерфейса, трудно поверить, что он может работать без X.

Поэтому я думаю, что ваш безголовый сервер требует установки X, такой как предложенная Жилем. Есть ряд подобных альтернатив.


2

Вы можете

  • используйте Firefox в виртуальном фреймбуфере: xvfb-run -a firefox
  • использовать SlimerJS (встроенный движок Gecko / рендеринга из Firefox) с xcfb,
  • используйте PhantomJS в качестве встроенного WebKit без необходимости отображения и поддержки селена через GhostDriver - если WebKit подходит для вас.

Я думаю, что вы имеете в виду «xvfb-run -a ...», а не xvfb, верно?
Кутзи

Спасибо :-) Может, это изменилось за это время?
флоп
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.