Jag har delat Dreamhost-hosting och jag försöker köra Firefox 3.0 på den utan att använda den med Selenium.

När jag försöker köra den (~/local/bin/firefox/firefox) får jag följande felmeddelande:

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

Hur kan jag kör Firefox på Linux utan att behöva denna delade objektfil?

Svar

Jag vet att det här är en ganska gammal fråga, men jag ville för att lägga till ett nyare svar som jag fick här från Google och var tvungen att söka ett tag för att hitta svaret.

Från och med Firefox 57 kan du köra i huvudlöst läge genom att helt enkelt installera Firefox och köra:

firefox -headless http://test.com/ 

Se Firefox-utvecklingsdokumenten här.

Kommentarer

  • Observera att Firefox-headless-läget för Firefox fortfarande har ändrat GTK3 installerat. Detta problem är löst nu, så vitt jag vet.

Svar

Du kan inte köra Firefox utan alla Gtk-biblioteken kräver det, men det är lätt att lösa genom att installera biblioteken. Normalt skulle du installera Firefox via ett pakethanteringssystem och detta skulle dra in alla nödvändiga bibliotek.

För att köra Firefox normalt behöver du en X-server (det är den del som visar fönstren och deras innehåll, till skillnad från saker som Gtk som är bibliotek som applikationen använder för att bygga innehållet). Det är något du vanligtvis inte skulle köra på en server. Det finns väldigt få saker du kan göra i Firefox utan en X-server, jag vet inte om Selenium är en av dem.

För att köra Firefox på din server, kör en ”virtuell” X-server. En enkel är Xvfb ( v irtual f rame b uffer X server). Det finns i X.org-serverdistribution . Exempel på användning:

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

Kommentarer

Svar

Du kan inte; det är länkat till X- och Gtk + -klientbiblioteken, och jag tror inte att det ens är möjligt att bygga det utan dem.

Även i Firefox-huvudlös version, GTK + behövs fortfarande .

Svar

Eftersom Selen är ett GUI-testverktyg skulle jag har svårt att tro att det kan fungera utan X.

Så min bästa gissning är att din huvudlösa server kräver en X-installation som den som föreslås av Gilles. Det finns ett antal liknande alternativ.

Svar

Du kan

  • använda en Firefox i en virtuell frambuffer: xvfb-run -a firefox
  • använd SlimerJS (en inbäddad Gecko / rendering-motor från Firefox) med xcfb,
  • använd PhantomJS som inbäddat WebKit utan behov av en skärm och selenstöd via GhostDriver – om WebKit är OK för dig.

Kommentarer

  • Jag tror att du menar ' xvfb-run -a … ' och inte xvfb, eller hur?
  • Tack 🙂 Kanske det ändrats under tiden?

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *