Mam współdzielony hosting Dreamhost i próbuję bezgłośnie uruchomić na nim przeglądarkę Firefox 3.0 do użytku z Selenium.
Kiedy próbuję go uruchomić (~/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 bez wymagania tego udostępnionego pliku obiektu?
Odpowiedź
Wiem, że to dość stare pytanie, ale chciałem aby dodać bardziej aktualną odpowiedź, ponieważ zostałem tutaj skierowany przez Google i musiałem chwilę szukać, aby znaleźć odpowiedź.
Od Firefoksa 57 możesz działać w trybie bezgłowym po prostu instalując Firefoksa i uruchamiając:
firefox -headless http://test.com/
Zobacz dokumentację dla programistów Firefoksa tutaj.
Komentarze
- Należy pamiętać, że w pierwszych wydaniach tryb bezgłowy Firefoksa nadal wymagał zainstalowania GTK3. O ile wiem, ten problem został już rozwiązany.
Odpowiedź
Nie można uruchomić przeglądarki Firefox bez wszystkich wymaganych bibliotek Gtk, ale można to łatwo rozwiązać, instalując biblioteki. Zwykle instalowałbyś Firefoksa przez system zarządzania pakietami, co spowodowałoby pobranie wszystkich wymaganych bibliotek.
Aby normalnie uruchomić Firefoksa, potrzebujesz X serwer (jest to część, która wyświetla okna i ich zawartość, w przeciwieństwie do rzeczy takich jak Gtk, które są bibliotekami używanymi przez aplikację do budowania zawartości). To jest coś, czego zwykle nie uruchamia się na serwerze. Jest bardzo niewiele rzeczy, które możesz zrobić w Firefoksie bez serwera X. Nie wiem, czy Selenium jest jedną z nich.
Aby uruchomić Firefoksa na swoim serwerze, uruchom „wirtualny” serwer X. Prosty to Xvfb ( v irtual f rame b uffer X serwer). Znajduje się w dystrybucji serwera X.org . Przykładowe użycie:
Xvfb :19 -screen 0 1024x768x16 & export DISPLAY=:19 firefox &
Komentarze
- Świetnie, pozdrawiam Gilles, gotowe. Te artykuły okazały się pomocne przy uruchamianiu Xvfb: alittlemadness.com / 2008/03/05 / running-selen-headless i blog.kabisa.nl/2010/05/24/…
Odpowiedź
Możesz „t; jest powiązany z bibliotekami klienta X i Gtk + i nie sądzę, aby można było go zbudować bez nich.
Nawet w wersji bezgłowej przeglądarki Firefox GTK + jest nadal potrzebne .
Odpowiedź
Ponieważ Selenium jest narzędziem do testowania GUI, chciałbym trudno uwierzyć, że może działać bez X.
Więc przypuszczam, że twój bezgłowy serwer wymaga instalacji X, takiej jak ta sugerowana przez Gillesa. Istnieje wiele podobnych alternatyw.
Odpowiedź
Możesz
- użyć przeglądarki Firefox w wirtualnym buforze ramki:
xvfb-run -a firefox
- użyj SlimerJS (wbudowany silnik Gecko / renderujący Firefox) z xcfb,
- użyj PhantomJS jako wbudowanego WebKita bez konieczności obsługi wyświetlacza i selenu przez GhostDriver – jeśli WebKit jest dla Ciebie w porządku.
Komentarze
- Myślę, że masz na myśli ' xvfb-run -a … ' a nie xvfb, prawda?
- Dzięki 🙂 Może tak zmienił się w międzyczasie?