Come posso eseguire Firefox su Linux senza testa (cioè senza richiedere libgtk-x11-2.0.so.0)?


17

Ho l'hosting condiviso di Dreamhost e sto cercando di eseguire Firefox 3.0 su di esso senza testa per l'uso 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?

Risposte:


8

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

A partire da Firefox 57, è possibile eseguire in modalità senza testa semplicemente installando Firefox ed eseguendo:

firefox -headless http://test.com/

Consulta i documenti di sviluppo di Firefox qui.


Eccellente - grazie per aver aggiunto una risposta aggiornata e di alta qualità; questo è esattamente lo scopo di Stack Exchange.
Paul D. Waite,

14

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

Per eseguire Firefox normalmente, hai bisogno di un server X (che è la parte che mostra le finestre e il loro contenuto, al contrario di cose come Gtk che sono librerie che l'application usa per costruire il contenuto). È qualcosa che di solito non si esegue su un server. Ci sono poche cose che puoi fare in Firefox senza un server X, non so se Selenium sia uno di questi.

Per eseguire Firefox sul tuo server, esegui un server X "virtuale". Un semplice è Xvfb ( v irtual f rame b Uffer X server). È nella distribuzione del server X.org . Esempio di utilizzo:

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

1
Eccellente, evviva Gilles, tutto fatto. Ho anche trovato utili questi articoli per far funzionare Xvfb: alittlemadness.com/2008/03/05/running-selenium-headless e blog.kabisa.nl/2010/05/24/…
Paul D. Waite

7

Non puoi; è collegato con le librerie client X e Gtk + e non credo sia nemmeno possibile costruirlo senza di loro.

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


2

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

Quindi la mia ipotesi migliore è che il tuo server senza testa richiede un'installazione X come quella suggerita da Gilles. Esistono diverse alternative simili.


2

Puoi

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

Penso che intendi "xvfb-run -a ..." e non xvfb, giusto?
Kutzi,

Grazie :-) Forse è cambiato nel frattempo?
flob
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.