Como posso executar o Firefox no Linux sem cabeça (ou seja, sem precisar da libgtk-x11-2.0.so.0)?

17

Eu tenho a hospedagem compartilhada do Dreamhost e estou tentando executar o Firefox 3.0 nele sem cabeça para usar com o Selenium.

Quando tento executá-lo ( ~/local/bin/firefox/firefox), recebo a seguinte mensagem de erro:

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

Como posso executar o Firefox no Linux sem exigir esse arquivo de objeto compartilhado?

Paul D. Waite
fonte

Respostas:

8

Sei que essa é uma pergunta bastante antiga, mas queria adicionar uma resposta mais recente, pois fui direcionada aqui pelo Google e tive que procurar um tempo para encontrar a resposta.

No Firefox 57, você pode executar no modo sem cabeça simplesmente instalando o Firefox e executando:

firefox -headless http://test.com/

Veja os documentos de desenvolvimento do Firefox aqui.

AlaskaJoslin
fonte
Excelente - obrigado por adicionar uma resposta atualizada e de alta qualidade; é exatamente para isso que o Stack Exchange foi projetado.
Paul D. Waite
14

Você não pode executar o Firefox sem todas as bibliotecas Gtk necessárias, mas isso é facilmente resolvido com a instalação das bibliotecas. Normalmente você instalaria o Firefox através de um sistema de gerenciamento de pacotes e isso atrairia todas as bibliotecas necessárias.

Para executar o Firefox normalmente, você precisa de um servidor X (essa é a parte que exibe as janelas e seu conteúdo, em oposição a coisas como Gtk, que são bibliotecas que o aplicativo usa para criar o conteúdo). Isso é algo que você normalmente não executaria em um servidor. Existem poucas coisas que você pode fazer no Firefox sem um servidor X, não sei se o Selenium é uma delas.

Para executar o Firefox no seu servidor, execute um servidor X "virtual". A um simples é Xvfb ( v irtual f rame b pode ser prejudicado X servidor). Está na distribuição do servidor X.org . Uso da amostra:

Xvfb :19 -screen 0 1024x768x16 &
export DISPLAY=:19
firefox &
Gilles 'SO- parar de ser mau'
fonte
1
Excelente, aplaude Gilles, pronto. Eu também encontrei estes artigos útil para obter Xvfb execução: alittlemadness.com/2008/03/05/running-selenium-headless e blog.kabisa.nl/2010/05/24/...
Paul D. Waite
7

Você não pode; está vinculado às bibliotecas cliente X e Gtk +, e acho que nem é possível construí-lo sem elas.

Mesmo na versão sem cabeça do Firefox, o GTK + ainda é necessário .

geekosaur
fonte
2

Como o Selenium é uma ferramenta de teste da GUI, acho difícil acreditar que ele possa funcionar sem o X.

Portanto, meu melhor palpite é que o servidor sem cabeça requer uma instalação do X, como a sugerida por Gilles. Existem várias alternativas semelhantes.

asoundmove
fonte
2

Você pode

  • use um Firefox em um framebuffer virtual: xvfb-run -a firefox
  • use o SlimerJS (um mecanismo de renderização / gecko incorporado do Firefox) com xcfb,
  • use o PhantomJS como WebKit incorporado, sem a necessidade de suporte a exibição e selênio via GhostDriver - se o WebKit for bom para você.
flob
fonte
Eu acho que você quer dizer 'xvfb-run -a ...' e não xvfb, certo?
Kutzi 18/01
Obrigado :-) Talvez tenha mudado nesse meio tempo?
flob 22/01