it-swarm.com.de

Selenium: FirefoxProfile-Ausnahme Das Profil kann nicht geladen werden

Per diese vorherige Frage Ich habe Selenium auf Version 2.0.1 .__ aktualisiert. Nun habe ich jedoch einen anderen Fehler, auch wenn die Profildateien unter /tmp/webdriver-py-profilecopy vorhanden sind: 

 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, Timeout), 
 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, im 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 ("Profil kann nicht geladen werden. Profilverzeichnis:% s"% self.profile.path) 
 Selenium.common.exceptions.WebDriverException: Das Profil kann nicht geladen werden. Profilverzeichnis: /tmp/webdriver-py-profilecopy

Was ist falsch? Wie kann ich dieses Problem lösen? 

95
sultan

Update:

Selen-Team in der neuesten Version behoben. Für fast alle Umgebungen lautet das Update: 

pip install -U Selenium

Unklar, bei welcher Version es behoben wurde (anscheinend r13122 ), aber sicherlich um 2.26.0 (aktuell zum Zeitpunkt des Updates) behoben.


Dieser Fehler bedeutet, dass _wait_until_connectable das Zeitlimit überschreitet, da der Code aus irgendeinem Grund keine Verbindung zu der in das Firefox geladenen Erweiterung des Webtreibers herstellen kann.

Ich habe gerade einen Fehler an Selenium gemeldet, bei dem ich diesen Fehler bekomme, weil ich versuche, einen Proxy zu verwenden, und nur zwei der 4 konfigurierten Änderungen im Profil wurden von Firefox akzeptiert die Erweiterung. Nicht sicher, warum das passiert ...

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

132
Rachel

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 Selenium-Bibliothek. Für fast alle Python-Umgebungen ist dies:

pip install -U Selenium
31
user1380597

Das gleiche Problem hatte ich mit FF 32.0 und Selenium-2.42.1-py2.7.Egg. Versuchte, Selenium zu aktualisieren, aber es ist bereits die neueste Version .. Die Lösung bestand darin, Firefox auf Version 30 herunterzurüsten.

#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 löste alle Probleme und diese Kombination funktioniert besser!

25
Mijo

Als Erweiterung der Antwort von Jeff Hoye wäre ein "Pythonic" - Weg, webdriver.firefox.firefox_profile.FirefoxProfile wie folgt unterzuordnen:

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 erstellen Sie Ihren Treiber:

driver = webdriver.Firefox(firefox_profile=CygwinFirefoxProfile())
8
Joel Cross

Wenn pip install -U Selenium nicht funktioniert (in meinem Fall nicht), versuchen Sie, Ihren Firefox auf eine vorherige Version herunterzustufen.

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

Hier können Sie schnell auf Firefox 45.0 herunterstufen:

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

Hoffe das hilft.

5
Chris

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

in dieser Datei/Methode: Selenium.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 nahe kommt, können wir, wenn jemand einen Pythonic-Ansatz empfehlen kann, ihn in die Distribution hineinschieben. Es wäre sicher praktisch, wenn es in cygwin sofort funktionieren würde.

4
Jeff Hoye

Ich hatte das gleiche Problem und glaubte, dass es die falsche Kombination von Selenium/Firefox war. Es stellte sich heraus, dass meine .mozilla/Ordner-Berechtigungen nur für den Root-Benutzer zugänglich waren. chmod 770 ~/.mozilla/ tat den Trick. Ich würde vorschlagen, sicherzustellen, dass dies nicht das Problem ist, bevor Sie die Fehlerbehebung fortsetzen.

3
chillwx

pip install -U Selenium

Ich hatte das gleiche Problem mit Firefox 34.0.5 (Dec 1, 2014) und ein Upgrade von Selenium von 2.42.1 auf 2.44.0 hat mein Problem behoben.

Allerdings habe ich dieses Problem seitdem wieder gesehen, ich glaube mit 2.44.0, und ein weiteres Upgrade behebt es. Ich frage mich also, ob das Problem behoben werden kann, indem Sie einfach deinstallieren und dann erneut installieren. Wenn ja, bin ich mir nicht sicher, woran das liegen könnte.

1
Rob Bednark

Ich habe Selenium 2.53 und Firefox Version 55.0 verwendet. Ich habe dieses Problem durch die Installation der älteren Firefox-Version (46.0.1) behoben, da Selenium 2.53 für Firefox-Version 47.0 und höher nicht funktioniert.

0
Rashid