Eu tenho a hospedagem compartilhada do Dreamhost e estou tentando executar o Firefox 3.0 sem comando 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 executa o Firefox no Linux sem exigir este arquivo de objeto compartilhado?

Resposta

Eu sei que esta é uma pergunta bastante antiga, mas eu queria para adicionar uma resposta mais recente conforme fui instruído aqui pelo Google e tive que pesquisar um pouco para encontrar a resposta.

A partir do Firefox 57, você pode rodar no modo headless simplesmente instalando o Firefox e executando:

firefox -headless http://test.com/ 

Veja os documentos de desenvolvimento do Firefox aqui.

Comentários

  • Por favor, note que nas primeiras versões, o modo headless do Firefox ainda neded GTK3 instalado. Este problema está resolvido agora, pelo que eu sei.

Resposta

Você não pode “executar o Firefox sem todas as bibliotecas Gtk que ele requer, mas isso é facilmente resolvido instalando as bibliotecas. Normalmente, você instalaria o Firefox por meio de um sistema de gerenciamento de pacotes e isso puxaria todas as bibliotecas necessárias.

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

Para executar o Firefox em seu servidor, execute um servidor X “virtual”. Um simples é o Xvfb ( v irtual f rame b uffer X servidor). Está na distribuição do servidor X.org . Exemplo de uso:

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

Comentários

Resposta

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

Mesmo na versão headless do Firefox, GTK + ainda é necessário .

Resposta

Visto que Selenium é uma ferramenta de teste de GUI, eu faria acho difícil acreditar que ele pode funcionar sem o X.

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

Resposta

Você pode

  • usar um Firefox em um framebuffer virtual: xvfb-run -a firefox
  • use SlimerJS (um motor de renderização / Gecko incorporado de Firefox) com xcfb,
  • use PhantomJS como WebKit incorporado sem a necessidade de um display e suporte de selênio via GhostDriver – se o WebKit for adequado para você.

Comentários

  • Acho que você quer dizer ' xvfb-run -a … ' e não xvfb, certo?
  • Obrigado 🙂 Talvez seja mudou entretanto?

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *