Ik heb Dreamhost shared hosting, en ik probeer Firefox 3.0 er headless op uit te voeren voor gebruik met Selenium.

Als ik het probeer uit te voeren (~/local/bin/firefox/firefox), krijg ik de volgende foutmelding:

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

Hoe kan ik Firefox op Linux draaien zonder dit gedeelde objectbestand nodig te hebben?

Antwoord

Ik weet dat dit een vrij oude vraag is, maar ik wilde om een recenter antwoord toe te voegen, aangezien ik hier door Google werd aangestuurd en een tijdje moest zoeken om het antwoord te vinden.

Vanaf Firefox 57 kunt u in de headless-modus werken door Firefox te installeren en uit te voeren:

firefox -headless http://test.com/ 

Bekijk hier de Firefox-ontwikkelaarsdocumenten.

Opmerkingen

  • Houd er rekening mee dat op de eerste releases de Firefox headless-modus nog steeds GTK3 geïnstalleerd heeft. Dit probleem is nu opgelost, voor zover ik weet.

Antwoord

U kunt Firefox niet uitvoeren zonder alle Gtk-bibliotheken die het nodig heeft, maar dat is eenvoudig op te lossen door de bibliotheken te installeren. Normaal gesproken zou u Firefox installeren via een pakketbeheersysteem en dit zou alle vereiste bibliotheken binnenhalen.

Om Firefox normaal te laten werken, heeft u een X-server (dat is het gedeelte dat de vensters en hun inhoud weergeeft, in tegenstelling tot zaken als Gtk, die bibliotheken zijn die de applicatie gebruikt om de inhoud te bouwen). Dat is iets dat je normaal niet op een server zou draaien. Er zijn een paar dingen die u in Firefox kunt doen zonder een X-server, ik weet niet of Selenium er een van is.

Om Firefox op uw server te laten draaien, moet u een “virtuele” X-server draaien. Een simpele is Xvfb ( v irtual f rame b uffer X server). Het bevindt zich in de X.org-serverdistributie . Voorbeeldgebruik:

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

Reacties

Antwoord

Je kunt “t; het is gekoppeld aan de X- en Gtk + -clientbibliotheken, en ik denk niet dat het zelfs mogelijk is om het zonder hen te bouwen.

Zelfs in de headless-versie van Firefox, GTK + is nog steeds nodig .

Antwoord

Aangezien Selenium een GUI-testtool is, zou ik vind het moeilijk te geloven dat het zonder X kan werken.

Dus mijn beste gok is dat je headless server een X-installatie nodig heeft, zoals voorgesteld door Gilles. Er zijn een aantal vergelijkbare alternatieven.

Antwoord

U kunt

  • een Firefox in een virtuele framebuffer: xvfb-run -a firefox
  • gebruik SlimerJS (een ingesloten Gecko / rendering-engine van Firefox) met xcfb,
  • gebruik PhantomJS als embedded WebKit zonder de noodzaak van een display en seleniumondersteuning via GhostDriver – als WebKit in orde voor je is.

Reacties

  • Ik denk dat je bedoelt ' xvfb-run -a … ' en niet xvfb, toch?
  • Bedankt 🙂 Misschien veranderd in de tussentijd?

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *