Tengo el alojamiento compartido de Dreamhost y estoy intentando ejecutar Firefox 3.0 sin cabeza para usarlo con Selenium.
Cuando intento ejecutarlo (~/local/bin/firefox/firefox
), aparece el siguiente mensaje de error:
error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
¿Cómo puedo ejecutar Firefox en Linux sin requerir este archivo de objeto compartido?
Respuesta
Sé que esta es una pregunta bastante antigua, pero quería para agregar una respuesta más reciente, ya que Google me indicó aquí y tuve que buscar durante un tiempo para encontrar la respuesta.
A partir de Firefox 57, puede ejecutar en modo sin cabeza simplemente instalando Firefox y ejecutando:
firefox -headless http://test.com/
Consulte los documentos de desarrollo de Firefox aquí.
Comentarios
- Por favor, tenga en cuenta que en las primeras versiones, el modo sin cabeza de Firefox todavía necesitaba tener GTK3 instalado. Este problema ya está resuelto, hasta donde yo sé.
Respuesta
No puedes ejecutar Firefox sin todas las bibliotecas Gtk que requiere, pero eso se resuelve fácilmente instalando las bibliotecas. Normalmente, instalaría Firefox a través de un sistema de administración de paquetes y esto incluiría todas las bibliotecas requeridas.
Para ejecutar Firefox normalmente, necesita un servidor X (esa es la parte que muestra las ventanas y su contenido, a diferencia de cosas como Gtk que son bibliotecas que la aplicación usa para construir el contenido). Eso es algo que normalmente no se ejecutaría en un servidor. Hay muy pocas cosas que puedes hacer en Firefox sin un servidor X, no sé si Selenium es una de ellas.
Para ejecutar Firefox en tu servidor, ejecuta un servidor X “virtual”. Uno simple es Xvfb ( v irtual f rame b uffer X servidor). Está en la distribución del servidor X.org . Ejemplo de uso:
Xvfb :19 -screen 0 1024x768x16 & export DISPLAY=:19 firefox &
Comentarios
- Excelente, salud Gilles, ya está. También encontré estos artículos útiles para ejecutar Xvfb: alittlemadness.com / 2008/03/05 / running-selenium-headless y blog.kabisa.nl/2010/05/24/…
Responder
No puede «t; está vinculado con las bibliotecas cliente X y Gtk +, y no creo que sea posible construirlo sin ellas.
Incluso en la versión sin cabeza de Firefox, GTK + todavía se necesita .
Respuesta
Dado que Selenium es una herramienta de prueba de GUI, me cuesta creer que pueda funcionar sin X.
Entonces, mi mejor suposición es que su servidor sin cabeza requiere una instalación de X como la sugerida por Gilles. Hay varias alternativas similares.
Respuesta
Puede
- usar un Firefox en un framebuffer virtual:
xvfb-run -a firefox
- use SlimerJS (un motor de renderizado / Gecko integrado de Firefox) con xcfb,
- use PhantomJS como WebKit incrustado sin la necesidad de una pantalla y soporte de selenio a través de GhostDriver – si WebKit está bien para usted.
Comentarios
- Creo que quiere decir ' xvfb-run -a … ' y no xvfb, ¿verdad?
- Gracias 🙂 Tal vez mientras tanto?