Ho lhosting condiviso di Dreamhost e sto cercando di eseguire Firefox 3.0 senza testa per utilizzarlo con Selenium.

Quando provo a eseguirlo (~/local/bin/firefox/firefox), ricevo il seguente messaggio di errore:

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

Come posso eseguire Firefox su Linux senza richiedere questo file oggetto condiviso?

Risposta

So che questa è una domanda piuttosto vecchia, ma volevo per aggiungere una risposta più recente poiché sono stato indirizzato qui da Google e ho dovuto cercare un po per trovare la risposta.

A partire da Firefox 57, puoi eseguire in modalità headless semplicemente installando Firefox ed eseguendo:

firefox -headless http://test.com/ 

Consulta i documenti degli sviluppatori di Firefox qui.

Commenti

  • Per favore, nota che nelle prime versioni, la modalità headless di Firefox richiedeva ancora linstallazione di GTK3. Questo problema è ormai risolto, per quanto ne so.

Risposta

Non puoi eseguire Firefox senza tutte le librerie Gtk che richiede, ma è facilmente risolvibile installando le librerie. Normalmente installeresti Firefox tramite un sistema di gestione dei pacchetti e questo attirerebbe tutte le librerie richieste.

Per eseguire Firefox normalmente, è necessario un server X (questa è la parte che mostra le finestre e il loro contenuto, al contrario di cose come Gtk, che sono librerie che lapplicazione usa per costruire il contenuto). Questo è qualcosa che normalmente non gireresti su un server. Ci sono poche cose che puoi fare in Firefox senza un server X, non so se Selenium sia una di queste.

Per eseguire Firefox sul tuo server, esegui un server X “virtuale”. Uno semplice è Xvfb ( v irtual f rame b uffer X server). Si trova nella distribuzione del server X.org . Utilizzo di esempio:

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

Commenti

Risposta

Non puoi “t; è collegato alle librerie client X e Gtk + e non credo sia nemmeno possibile crearlo senza di loro.

Anche nella versione headless di Firefox, GTK + è ancora necessario .

Risposta

Poiché Selenium è uno strumento di test della GUI, lo farei trovo difficile credere che possa funzionare senza X.

Quindi la mia ipotesi migliore è che il tuo server headless richieda uninstallazione X come quella suggerita da Gilles. Esistono numerose alternative simili.

Risposta

Puoi

  • utilizzare Firefox in un framebuffer virtuale: xvfb-run -a firefox
  • usa SlimerJS (un motore di rendering / Gecko incorporato da Firefox) con xcfb,
  • utilizza PhantomJS come WebKit incorporato senza la necessità di supporto per display e selenio tramite GhostDriver : se WebKit va bene per te.

Commenti

  • Penso che tu intenda ' xvfb-run -a … ' e non xvfb, giusto?
  • Grazie 🙂 Forse è così cambiato nel frattempo?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *