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?
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
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
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!
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())
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.
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.
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.
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.
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.