Как я могу запустить 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.