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