102 votes

Selenium: Exception de FirefoxProfile Impossible de charger le profil

Selon cette question précédente, j'ai mis à jour Selenium en version 2.0.1 Mais maintenant j'ai une autre erreur, même lorsque les fichiers de profil existent sous /tmp/webdriver-py-profilecopy:

  Fichier "/home/sultan/Repository/Django/monitor/app/request.py", ligne 236, dans perform
    navigateur = Firefox(profil)
  Fichier "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", ligne 46, dans \_\_init\_\_
    self.binary, timeout),
  Fichier "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension\_connection.py", ligne 46, dans \_\_init\_\_
    self.binary.launch\_browser(self.profile)
  Fichier "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox\_binary.py", ligne 44, dans launch\_browser
    self.\_wait\_until\_connectable() 
  Fichier "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox\_binary.py", ligne 87, dans \_wait\_until\_connectable
    raise WebDriverException("Impossible de charger le profil. Répertoire du profil : %s" % self.profile.path)
selenium.common.exceptions.WebDriverException: Impossible de charger le profil. Répertoire du profil : /tmp/webdriver-py-profilecopy

Qu'est-ce qui ne va pas? Comment puis-je résoudre ce problème?

137voto

Rachel Points 636

Mise à jour :

L'équipe Selenium a corrigé dans la dernière version. Pour presque tous les environnements, la correction est :

pip install -U selenium

Il n'est pas clair à quelle version cela a été corrigé (apparemment r13122), mais certainement à partir de la version 2.26.0 (actuelle au moment de la mise à jour), c'est corrigé.


Cette erreur signifie que _wait_until_connectable prend trop de temps, car pour une raison quelconque, le code ne peut pas se connecter à l'extension du webdriver qui a été chargée dans Firefox.

Je viens de signaler une erreur à Selenium où j'obtiens cette erreur parce que j'essaie d'utiliser un proxy et seuls 2 des 4 changements configurés dans le profil ont été acceptés par Firefox, donc le proxy n'est pas configuré pour parler à l'extension. Je ne sais pas pourquoi cela se produit...

https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/2061

32voto

user1380597 Points 181

J'ai eu le même problème après avoir mis à jour Ubuntu vers 12.04.

Le problème se trouvait du côté du package et a été corrigé dans la dernière version de la bibliothèque. Il suffit de mettre à jour la bibliothèque selenium. Pour presque tous les environnements Python, c'est :

pip install -U selenium

26voto

user1757247 Points 17

J'ai rencontré le même problème avec FF 32.0 et Selenium selenium-2.42.1-py2.7.egg. J'ai essayé de mettre à jour Selenium, mais il est déjà à la dernière version. La solution a été de revenir à Firefox version 30. Voici le processus :

#Téléchargez la version 30 pour Linux (c'est le 64 bits)
wget http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/30.0/linux-x86_64/en-US/firefox-30.0.tar.bz2

tar -xjvf firefox-30.0.tar.bz2
#Supprimez l'ancienne version
sudo rm -rf /opt/firefox*
sudo mv firefox /opt/firefox30.0
#Créez un lien permanent
sudo ln -sf /opt/firefox30.0/firefox /usr/bin/firefox

Cela a résolu tous les problèmes, et cette combinaison fonctionne mieux !

8voto

Joel Cross Points 422

En complément de la réponse de Jeff Hoye, une manière plus 'Pythonic' serait de sous-classer webdriver.firefox.firefox_profile.FirefoxProfile comme suit:

class CygwinFirefoxProfile(FirefoxProfile):
    @property
    def path(self):
        path = self.profile_dir
        # Faites des manipulations sur le chemin telles que décrites dans la réponse de Jeff Hoye
        return path

Ensuite, pour créer votre pilote:

driver = webdriver.Firefox(firefox_profile=CygwinFirefoxProfile())

5voto

Chris Points 343

Si pip install -U selenium ne fonctionne pas (ce n'était pas le cas dans mon cas), essayez de rétrograder votre Firefox vers une version antérieure.

J'avais Firefox 49.0 et je suis redescendu à 45.0 pour m'assurer que la version est prise en charge par selenium. Cela a parfaitement fonctionné par la suite.

Voici une méthode rapide pour rétrograder vers Firefox 45.0 :

sudo apt-get install firefox=45.0.2+build1-0ubuntu1

J'espère que cela vous aidera.

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