seleniumium: FirefoxProfile-Ausnahme Kann das Profil nicht laden

Nach dieser vorherigen Frage habe ich seleniumium auf Version 2.0.1 aktualisiert. Aber jetzt habe ich einen weiteren Fehler, selbst wenn die Profildateien unter /tmp/webdriver-py-profilecopy :

   Datei "/home/sultan/Repository/Django/monitor/app/request.py", Zeile 236, in perform
     Browser = Firefox (Profil)
   Datei "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", Zeile 46, in __init__
     self.binary, Zeitüberschreitung),
   Datei "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", Zeile 46, in __init__
     self.binary.launch_browser (self.profile)
   Datei "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", Zeile 44, in launch_browser
     self._wait_until_connectable () 
   Datei "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", Zeile 87, in _wait_until_connectable
     raise WebDriverException ("Das Profil kann nicht geladen werden. Profilverz:% s"% self.profile.path)
 selenium.common.exceptions.WebDriverException: Das Profil kann nicht geladen werden.  Profil Dir: / tmp / webdriver-py-Profilkopie

Was ist falsch? Wie kann ich dieses Problem beheben?

Aktualisieren:

seleniumium Team in der neuesten Version behoben. Für fast alle Umgebungen lautet die Lösung:

Pip installieren -U selenium

Unklar bei welcher Version es behoben wurde (anscheinend r13122 ), aber sicher bei 2.26.0 (aktuell zum Zeitpunkt der Aktualisierung) ist es behoben.


Dieser Fehler bedeutet, dass _wait_until_connectable das Zeitlimit überschreitet, da der Code aus irgendeinem Grund keine Verbindung zur Webdriver-Erweiterung herstellen kann, die in das Firefox geladen wurde.

Ich habe gerade einen Fehler bei selenium gemeldet, wo ich diesen Fehler bekomme, weil ich versuche, einen Proxy zu verwenden und nur 2 der 4 konfigurierten Änderungen im Profil von Firefox akzeptiert wurden, so dass der Proxy nicht konfiguriert ist, um mit ihm zu sprechen die Erweiterung. Nicht sicher, warum das passiert …

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

Ich hatte das gleiche Problem nach dem Upgrade von Ubuntu auf 12.04.

Das Problem war auf der Paketseite und wurde in der neuesten Version der Bibliothek behoben. Aktualisieren Sie einfach die seleniumbibliothek. Für fast alle Python-Umgebungen ist dies:

 pip install -U selenium 

Ich hatte das gleiche Problem mit FF 32.0 und selenium selenium-2.42.1-py2.7.egg. Versucht, selenium zu aktualisieren, aber es ist bereits die neueste Version. Die Lösung bestand darin, Firefox auf Version 30 herunterzustufen. Hier ist der process:

 #Download version 30 for Linux (This is the 64 bit) 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 #Remove the old version sudo rm -rf /opt/firefox* sudo mv firefox /opt/firefox30.0 #Create a permanent link sudo ln -sf /opt/firefox30.0/firefox /usr/bin/firefox 

Dies triggerse alle Probleme, und diese Kombination funktioniert besser!

Als eine Erweiterung zu Jeff Hoyes Antwort wäre ein “pythonischer” Weg, webdriver.firefox.firefox_profile.FirefoxProfile wie folgt zu webdriver.firefox.firefox_profile.FirefoxProfile :

 class CygwinFirefoxProfile(FirefoxProfile): @property def path(self): path = self.profile_dir # Do stuff to the path as described in Jeff Hoye's answer return path 

Dann, um deinen Treiber zu erstellen:

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

Wenn pip install -U selenium nicht funktioniert (in meinem Fall nicht), versuche deinen Firefox auf eine vorherige Version herunterzustufen.

Ich hatte Firefox 49.0 und Downgrade auf 45.0, um sicherzustellen, dass die Version von selenium unterstützt wird. Es hat perfekt funktioniert.

Hier ist ein schneller Weg zum Downgrade auf Firefox 45.0:

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

Hoffe das hilft.

Wenn Sie Webdriver von Cygwin ausführen, besteht das Problem darin, dass der Pfad zum Profil immer noch im POSIX-Format ist, was Windows-Programme verwirrt. Meine Lösung verwendet cygpath, um es in Windows-Format zu konvertieren.

in dieser Datei / Methode: selen.webdriver.firefox.firefox_binary.launch_browser ():

ersetzen:

  self._start_from_profile_path(self.profile.path) 

mit:

  from subprocess import Popen, PIPE proc = Popen(['cygpath','-d',self.profile.path], stdout=PIPE, stderr=PIPE) stdout, stderr = proc.communicate() path = stdout.split('\n', 1)[0] self._start_from_profile_path(path) #self._start_from_profile_path(self.profile.path) 

Da Python meiner primären Programmiersprache nicht einmal nahe ist, kann jemand, der einen eher pythischen Ansatz empfehlen kann, es vielleicht in die Distribution schieben. Es wäre sicher praktisch, wenn es in Cygwin direkt aus der Box funktioniert.

Ich hatte das gleiche Problem und glaubte, es sei die falsche Kombination von selenium / Firefox. Es stellte sich heraus, dass meine .mozilla / Ordner-Berechtigungen nur für den Benutzer root zugänglich waren. Doing chmod 770 ~/.mozilla/ hat den Trick gemacht. Ich würde vorschlagen, sicherzustellen, dass dies nicht das Problem vor der weiteren Fehlersuche ist.

pip install -U selenium

Ich hatte das gleiche Problem mit Firefox 34.0.5 (Dec 1, 2014) und die Aktualisierung von seleniumium von 2.42.1 auf 2.44.0 triggerse mein Problem.

Allerdings habe ich dieses Problem schon wieder gesehen, denke ich mit 2.44.0, und ein anderes Upgrade hat es behoben. Ich frage mich also, ob es durch einfaches Deinstallieren und erneutes Installieren behoben werden könnte. Wenn dem so ist, bin ich nicht sicher, was das auf das zugrunde liegende Problem hindeutet.

Ich benutzte selenium 2.53 und Firefox Version 55.0. Ich habe dieses Problem getriggers, indem ich die ältere Version von Firefox (46.0.1) installiert habe, da selenium 2.53 nicht für Firefox Version 47.0 und höher funktioniert.

Das ist keine richtige Lösung, aber für mich hat es funktioniert, wenn sich jemand verbessern kann, wäre ich froh zu wissen. Ich sudo python myscript.py mein Skript einfach als root aus: sudo python myscript.py . Ich denke, ich kann das Problem lösen, indem ich das Profil ändere. Die Standarddatei oder das Standardverzeichnis könnten funktionieren.