Як я можу запустити 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, правда?
— Куцці

Спасибі :-) Може, це тим часом змінилося?
— flob
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.