7 votes

pourquoi firefox ne démarre pas sous selenium 2 webdriver sur redhat 5.6

Je me demandais si quelqu'un avait une idée sur la façon dont je pourrais trouver pourquoi je pourquoi je ne parviens pas à faire fonctionner Firefox avec Selenium Webdriver. Ce que Ce qui se passe, c'est que lorsque je lance

self.driver=webdriver.Firefox()

J'obtiens un dialogue vide sur mon bureau. Je fonctionne sous Redhat 5.6 et ma version de selenium est 2.21.3. J'ai débogué le code aussi loin que possible. et d'après ce que je peux déterminer, le code se fige après l'apparition de la dialogue vide sur le code suivant dans le module firefox_binary :

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

J'ai ouvert une invite cmd et exécuté manuellement la commande susmentionnée et aucun dialogue vide n'est apparu. Cela me fait penser que ce n'est pas pas une erreur de firefox. Je n'arrive pas à trouver où l'erreur pour ceci pourrait apparaisse. Avez-vous des idées ?

mise à jour

J'ai installé centos 6 et installé firefox 10.0.6 et selenium webdriver a fonctionné avec cette version

mise à jour

En plus d'utiliser centos 6, j'ai besoin que ce problème soit également résolu sur redhat. Voici donc plus de détails et ce que j'ai trouvé. Je vais mettre une prime sur ce sujet car il doit être résolu :

J'ai creusé un peu plus et j'ai trouvé que le problème vient du fait que Selenium utilise une librairie 32 bits. J'ai la version 2.25.0 de selenium sur Redhat Enterprise Linux Server version 5.6 (x86_64) utilisant Firefox ESR 10.0.6 (64 bit). J'ai modifié la méthode _start_from_profile_path dans la classe firefoxBinary pour voir où se situe le problème :

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

et j'ai parcouru le fichier /tmp/ffoutput.txt. J'ai découvert que Selenium essaie d'utiliser une librairie 32 bits :

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

Ce message apparaît continuellement et firefox se bloque avec une boîte de dialogue vide. J'ai cherché ce problème sur Google et j'ai trouvé des gens qui se plaignaient mais aucune solution qui fonctionnait (j'ai essayé de mettre la librairie 64 bits dans le répertoire de la librairie 32 bits après avoir déplacé la librairie 32 bits mais cela a fait planter geko, j'ai essayé d'envoyer les erreurs continues vers /dev/null mais cela n'a rien résolu).

3voto

Ashwin Prabhu Points 4833

Si vous faites référence à ce problème signalé dans Selenium http://code.google.com/p/selenium/issues/detail?id=2852

La solution de contournement sur les distros linux 64Bit est d'utiliser ces commandes :

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

Cela a fonctionné pour moi sur ma boîte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X