2012-05-21 14 views
7

Me preguntaba si alguien tiene alguna idea sobre cómo podría averiguar por qué I puede parecer que Firefox funciona con selenium webdriver. Lo que sucede es cuando corro:por qué firefox no se iniciará en selenium 2 webdriver en redhat 5.6

self.driver=webdriver.Firefox() 

me sale un diálogo en blanco en mi escritorio. Me estoy ejecutando en Redhat 5.6 y mi versión de selenio es 2.21.3. Me depurado el código Por lo que yo puedo ir y de lo que puedo determinar el código congela después de traer el diálogo en blanco en el siguiente código dentro del módulo firefox_binary:

Popen([self._start_cmd, "-slient"], stdout=PIPE, stderr=STDOUT, env=self._filefox_env).wait() 

me abrió un aviso del cmd y ejecutó manualmente el comando mencionado anteriormente y no aparece dicho diálogo en blanco. Esto me haría pensar que su no es un error de Firefox. No puedo encontrar dónde aparece el error . ¿Algunas ideas?

actualización

He instalado CentOS 6 y Firefox instalado 10.0.6 y selenio WebDriver trabajó con esa versión

actualización

Aparte de usar CentOS 6 Necesito a este problema también estar resuelto en redhat así que aquí hay más detalles y lo que he encontrado. Voy a poner una recompensa sobre esto ya que necesita ser resuelto:

Cavé un poco más sobre esto y encontré que el problema es con el selenio usando una lib de 32 bits. Tengo Selenium versión 2.25.0 en Redhat Enterprise Linux Server versión 5.6 (x86_64) con Firefox ESR 10.0.6 (64 bit). que cambió el método _start_from_profile_path en la clase firefoxBinary para ver dónde está el problema:

p=open("/tmp/ffoutput.txt", "w+") 
Popen([self._start_cmd, "-silent"], stdout=p, stderr=STDOUT, env=self._firefox_env).communicate() 

y cola /tmp/ffoutput.txt He encontrado que el selenio está tratando de utilizar un 32 bits lib:

Failed to dlopen /usr/lib/libX11.so.6 
dlerror says: /usr/lib/libX11.so.6: wrong ELF class: ELFCLASS32 

Este mensaje se produce continuamente y firefox se cuelga con un cuadro de diálogo en blanco. Busqué en Google este problema y encontré que algunas personas se quejaban pero no hubo soluciones que funcionaran (intenté vincular la lib de 64 bits con el directorio de lib de 32 bits después de mover la lib de 32 bits, pero esto causó la falla de geko, intenté enviar los errores continuos a/dev/null pero esto no solucionó nada).

+0

Sin excepción, no hay registro? Huh. ¿Alguna vez ha funcionado o es tu primer intento de ejecutar FF a través de WebDriver? ¿Podría intentar iniciar Firefox proporcionando una ruta al constructor? –

+0

Es mi primera vez en una caja de redhat. Lo tenía funcionando en una caja de Windows. Comprobé self._start_cmd y descubrí que es la ruta correcta para Firefox.como dije, verifiqué en la depuración qué comando se estaba utilizando y encontré que era/usr/bin/firefox -silent. Ejecuté eso en una terminal y no obtuve ningún error. También ejecuté/usr/bin/firefox (sin el -slient) y aparece firefox. Cuando el usuario de disco web no se abre el código mencionado anteriormente, Firefox y aparece un cuadro de diálogo en blanco en el escritorio de redhat. – amadain

+0

no se agrega nada a/var/log/messages para decirme nada (donde Firefox pone su registro). – amadain

Respuesta

3

Si se refiere a este problema reportado en selenio http://code.google.com/p/selenium/issues/detail?id=2852

El trabajo alrededor de distribuciones de Linux 64 bits son para emitir estos comandos:

sudo mv /usr/lib/libX11.so.6 /usr/lib/libX11.so.6.old 
sudo ln -s /usr/lib64/libX11.so.6.3.0 /usr/lib/libX11.so.6 

Esto funcionó para mí en mi caja.

+0

A partir de la 2da actualización "Intenté vincular por software la lib de 64 bits al directorio lib de 32 bits después de mover la lib de 32 bits, pero esto causó que geko fallara", así que desafortunadamente esto no funcionó para mí – amadain

Cuestiones relacionadas