2016-09-12 2 views
1

Es scheint, dass das Laden des Profils weiterhin fehlschlägt, obwohl ich die Pfadposition des Profils angeben, scheint es von einem anderen Pfad geladen werden (entsprechend dem Traceback). Fehle ich hier etwas?Python Selen-Web-Treiber Fehler

CODE

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile 

profile = FirefoxProfile('/Users/path/Library/Application Support/Firefox/Profiles/9s60syvx.default') 
browser = webdriver.Firefox(firefox_profile=profile) 
<snip> 

TRACKBACK

File "/Users/path/Python/Projects/test/login.py", line 12, in <module> 
    browser = webdriver.Firefox(firefox_profile=profile) 
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 80, in __init__ 
    self.binary, timeout) 
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/firefox/extension_connection.py", line 52, in __init__ 
    self.binary.launch_browser(self.profile, timeout=timeout) 
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser 
    self._wait_until_connectable(timeout=timeout) 
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 108, in _wait_until_connectable 
    % (self.profile.path)) 

selenium.common.exceptions.WebDriverException: Message: Can't load the profile. Profile Dir: /var/folders/dy/yl4zdm8n5j184hhfq_2j3bdh0000gn/T/tmpY3UPuy/webdriver-py-profilecopy If you specified a log_file in the FirefoxBinary constructor, check it for details. 

Firefox Version = 48.0.2

Selen Version = 2.53.6

OS Version = OS X 10.11.6

+0

Ich denke, dass dies das Kompatibilitätsproblem zwischen 'selenium' und' Firefox', sollten Sie versuchen, mit 'geckodriver', folgen [diesen Link für weitere Informationen] (http://stackoverflow.com/questions/38676719/ Fail-to-Launch-Mozilla-mit-Selen) –

+0

Ich habe versucht, die geckodriver (aka Drähte) zu verwenden, aber ich kann es nicht richtig machen. Ich werde einen weiteren Versuch machen und dich wissen lassen, wie es mir geht. – iNoob

+0

Ich bekomme 'selenium.common.exceptions.WebDriverException: Nachricht:' drahts 'ausführbare Datei muss in PATH sein. Obwohl ich den Pfad zu 'PATH $' hinzugefügt habe. Ich habe die Binärdatei in "Drähte" umbenannt. Ich habe die Caps binär auf den neu heruntergeladenen Gecko (alias Drähte) gerichtet. – iNoob

Antwort

0

Der einfachste Weg ist es, die geckodriver binär in das Verzeichnis, in dem PATH Sie bereits zu bewegen:

mv geckodriver /usr/local/bin 

Wenn Sie es an einem anderen Ort haben wollen, beachten Sie bitte, dass die PATH muss auf das Verzeichnis verweisen, das die geckodriver enthält und nicht auf die Binärdatei selbst. Um das benutzerdefinierte Verzeichnis zum PATH hinzuzufügen, sollten Sie es im Code tun, weil Sie es wahrscheinlich nicht systemweit haben möchten.

os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/' 

Danach, tun Sie die üblichen Sachen, die Sie wollen.

firefox_capabilities = DesiredCapabilities.FIREFOX 
firefox_capabilities['marionette'] = True 
firefox_capabilities['binary'] = '/usr/bin/firefox' 
profile = FirefoxProfile('/path/to/your/profile') 
browser = webdriver.Firefox(capabilities=firefox_capabilities 
          firefox_profile=profile) 
+0

danke, aber ich bin am Ende auf chromedriver umgestiegen und es funktioniert perfekt. Also werde ich nicht Ihre Lösung testen, aber wenn es von anderen mit dem Problem Stimmen bekommen, bin ich glücklich, es zu akzeptieren. – iNoob