Jeg har Dreamhost delt hosting, og jeg prøver å kjøre Firefox 3.0 på den hodeløst for bruk med Selenium.
Når jeg prøver å kjøre den (~/local/bin/firefox/firefox
), får jeg følgende feilmelding:
error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
Hvordan kan jeg kjøre Firefox på Linux uten å kreve denne delte objektfilen?
Svar
Jeg vet at dette er et ganske gammelt spørsmål, men jeg ville for å legge til et nyere svar ettersom jeg ble instruert her av Google og måtte søke en stund for å finne svaret.
Fra og med Firefox 57 kan du kjøre i hodeløs modus ganske enkelt ved å installere Firefox og kjøre:
firefox -headless http://test.com/
Kommentarer
- Vær oppmerksom på at Firefox-hodeløs modus fortsatt nedkjørte GTK3 installert på første utgivelser. Dette problemet er løst så vidt jeg vet.
Svar
Du kan ikke kjøre Firefox uten alle Gtk-bibliotekene krever det, men det løses enkelt ved å installere bibliotekene. Normalt vil du installere Firefox gjennom et pakkehåndteringssystem, og dette vil trekke inn alle nødvendige biblioteker.
For å kjøre Firefox normalt, trenger du en X-server (som er delen som viser vinduene og innholdet, i motsetning til ting som Gtk som er biblioteker som applikasjonen bruker til å bygge innholdet). Det er noe du vanligvis ikke vil kjøre på en server. Det er veldig få ting du kan gjøre i Firefox uten en X-server. Jeg vet ikke om Selen er en av dem.
For å kjøre Firefox på serveren din, kjør en «virtuell» X-server. En enkel er Xvfb ( v irtual f rame b uffer X server). Det er i X.org-serverdistribusjon . Eksempel på bruk:
Xvfb :19 -screen 0 1024x768x16 & export DISPLAY=:19 firefox &
Kommentarer
- Utmerket, skål Gilles, det er gjort. Jeg fant også disse artiklene nyttige for å få Xvfb til å kjøre: alittlemadness.com / 2008/03/05 / running-selen-headless , og blog.kabisa.nl/2010/05/24/…
Svar
Du kan ikke; den er knyttet til X- og Gtk + -klientbiblioteket, og jeg tror ikke det er mulig å bygge den uten dem.
Selv i Firefox-hodeløs versjon, GTK + trengs fremdeles .
Svar
Siden Selen er et GUI-testverktøy, vil jeg synes det er vanskelig å tro at det kan fungere uten X.
Så det beste gjettet mitt er at den hodeløse serveren din krever en X-installasjon som den som Gilles foreslo. Det finnes en rekke lignende alternativer.
Svar
Du kan
- bruke en Firefox i en virtuell framebuffer:
xvfb-run -a firefox
- bruk SlimerJS (en innebygd Gecko / gjengivelsesmotor fra Firefox) med xcfb,
- bruk PhantomJS som innebygd WebKit uten behov for skjerm og selenstøtte via GhostDriver – hvis WebKit er OK for deg.
Kommentarer
- Jeg tror du mener ' xvfb-run -a … ' og ikke xvfb, ikke sant?
- Takk 🙂 Kanskje det endret i mellomtiden?