Jak mogę uruchomić Firefoksa w systemie Linux bez głowy (tzn. Bez wymagania libgtk-x11-2.0.so.0)?


17

Mam dzielony hosting Dreamhost i staram się bez niego uruchamiać Firefoksa 3.0 do użytku z Selenium.

Podczas próby uruchomienia go ( ~/local/bin/firefox/firefox) pojawia się następujący komunikat o błędzie:

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

Jak mogę uruchomić Firefoksa w systemie Linux, nie wymagając tego pliku współdzielonego obiektu?

Odpowiedzi:


8

Wiem, że to dość stare pytanie, ale chciałem dodać nowszą odpowiedź, ponieważ zostałem skierowany tutaj przez Google i musiałem znaleźć chwilę na znalezienie odpowiedzi.

Począwszy od Firefoksa 57, możesz uruchomić tryb bezgłowy, po prostu instalując Firefoksa i uruchamiając:

firefox -headless http://test.com/

Zobacz dokumenty programistów Firefoksa tutaj.


Doskonałe - dzięki za dodanie aktualnej, wysokiej jakości odpowiedzi; właśnie do tego przeznaczona jest Stack Exchange.
Paul D. Waite,

14

Nie możesz uruchomić Firefoksa bez wszystkich wymaganych bibliotek Gtk, ale łatwo to rozwiązać, instalując biblioteki. Zwykle Firefox instalowałby się za pomocą systemu zarządzania pakietami, a to ściągałoby wszystkie wymagane biblioteki.

Aby normalnie uruchomić Firefox, potrzebujesz serwera X (to część wyświetlająca okna i ich zawartość, w przeciwieństwie do takich rzeczy jak Gtk, które są bibliotekami używanymi przez aplikację do tworzenia zawartości). Tego zwykle nie można uruchomić na serwerze. Jest kilka rzeczy, które możesz zrobić w Firefoksie bez serwera X. Nie wiem, czy Selenium jest jedną z nich.

Aby uruchomić Firefox na swoim serwerze, uruchom „wirtualny” serwer X. Prosta jest Xvfb ( V irtual f rame b uffer X serwer). Jest w dystrybucji serwera X.org . Przykładowe użycie:

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

1
Wspaniale, na zdrowie Gilles, to już koniec. Znalazłem także te artykuły pomocne w uruchomieniu Xvfb : alittlemadness.com/2008/03/05/running-selenium-headless i blog.kabisa.nl/2010/05/24/...
Paul D. Waite


2

Ponieważ Selenium jest narzędziem do testowania GUI, trudno mi uwierzyć, że może działać bez X.

Więc przypuszczam, że twój bezgłowy serwer wymaga instalacji X, takiej jak sugerowana przez Gillesa. Istnieje wiele podobnych alternatyw.


2

Możesz

  • użyj Firefoksa w wirtualnym buforze ramki: xvfb-run -a firefox
  • użyj SlimerJS (wbudowany silnik Gecko / renderowania z Firefoksa) z xcfb,
  • używaj PhantomJS jako wbudowanego WebKit bez potrzeby wyświetlania i obsługi selenu za pomocą GhostDriver - jeśli WebKit jest dla Ciebie odpowiedni.

Myślę, że masz na myśli „xvfb-run -a ...”, a nie xvfb, prawda?
Kutzi

Dzięki :-) Może to się zmieniło w międzyczasie?
flob
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.