2011-04-25 22 views
6

Estoy tratando de hacer algunas pruebas sin cabeza usando un script de ruby. Básicamente estoy ejecutando Xvfb en pantalla: 1, y luego activando Watir::Browser.new(:firefox) usando watir-webdriver.Ejecutando Selenium :: WebDriver :: Firefox dentro de Xvfb de ruby ​​como usuario NO root

Esto funciona muy bien si ejecuta el script como root - Puedo ejecutar x11vnc y ver el script ejecutar el navegador e interactuar con él.

El problema es que necesito poder llamar a este script de ruby ​​desde una aplicación de Rails, y NO ejecutarlo como root ... si intento ejecutar el script desde la línea de comando como un usuario normal, Xvfb se activa up on: 1 como de costumbre, pero Watir no iniciará un navegador ... eventualmente se agota después de 60 segundos. Al conectarse a través de VNC, aparece una pantalla negra con el cursor del mouse.

Puedo hacer todo el lote desde la línea de comandos: inicie Xvfb, luego inicie firefox --display=:1 y el navegador se inicia, por lo que debe ser un problema de Selenium, ¿no?

Nutshell: Selenium/Webdriver se niega a iniciar un navegador dentro de Xvfb a menos que ejecute el script como root.

+0

+1 para agregar su solución una vez que lo hizo bien –

+0

@ user724205 Su respuesta debe agregarse como respuesta, no se debe copiar en la pregunta. –

Respuesta

3
  • SOLUCIONADO - EDITAR * - lo siento, no podía responder a la pregunta, pero al parecer mi cuenta es demasiado nueva para hacer eso por el momento.

¡Solucionado! Increíble cómo este tipo de cosas tienden a resolver por sí mismos después de haber hecho la pregunta ...

Para aquellos que quieran saber por qué, hay algunas cosas que tenía que hacer ...

1) Asegúrese de que el el usuario en cuestión tiene un directorio de inicio que funciona (www-data no era por defecto ... su directorio local era propiedad de root)

2) Comience Xvfb desde la línea de comando y luego inicie Firefox desde la línea de comando (NO desde el script) - esto completará la carpeta de inicio de los usuarios con las carpetas usuales .dbus, .gconf etc.

3) Si obtiene un retraso masivo y th es un mensaje de error en la línea de "se produjo un error al cargar o guardar información de configuración para firefox-bin", elimine la carpeta .dbus en el directorio de inicio de los usuarios

4) Pruebe # 2 nuevamente - si tiene una configuración error antes, ahora debería haber desaparecido.

5) Intente ejecutar el script de nuevo.

Esto funcionó como un amuleto para mí, así que si tienes problemas similares al ejecutar Xvfb y watir-webdriver desde una aplicación web, pruébalo.

Gracias a todos por contribuir a lo que es sin lugar a dudas el MEJOR Q & Un sitio en la web ... este lugar me ha salvado el trasero más veces de las que me gustaría mencionar.

Nota: el usuario originalmente ingresó esta enmienda a su pregunta, porque no pudieron encontrar la manera de publicarla como respuesta.Eso fue editado fuera de la cuestión por alguna persona bien intencionada pero nunca se agregó como respuesta.

1

Hola, no sé si esto link podría ser una ayuda para usted. Esto me ayudó mucho. Necesitaba ejecutar watir-webdriver automáticamente al inicio/reinicio, funcionó para mí (lea también los comentarios).

Cuestiones relacionadas