2

Ich benutze Selen 3.0.1 mit Firefox 48 auf OS X in Python 3. Ich kann Firefox nicht als Webtreiber arbeiten.Firefox Webtreiber für Selenium in Python

from selenium import webdriver 
driver = webdriver.Firefox() 

gibt den folgenden Fehler:

--------------------------------------------------------------------------- 
OSError         Traceback (most recent call last) 
<ipython-input-21-fd567e24185f> in <module>() 
----> 1 driver = webdriver.Firefox() 

/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/selenium/webdriver/firefox/webdriver.py in __init__(self, firefox_profile, firefox_binary, timeout, capabilities, proxy, executable_path, firefox_options, log_path) 
    133   if capabilities.get("marionette"): 
    134    self.service = Service(executable_path, log_path=log_path) 
--> 135    self.service.start() 
    136 
    137    capabilities.update(firefox_options.to_capabilities()) 

/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/selenium/webdriver/common/service.py in start(self) 
    62    self.process = subprocess.Popen(cmd, env=self.env, 
    63            close_fds=platform.system() != 'Windows', 
---> 64            stdout=self.log_file, stderr=self.log_file) 
    65   except TypeError: 
    66    raise 

/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds) 
    854         c2pread, c2pwrite, 
    855         errread, errwrite, 
--> 856         restore_signals, start_new_session) 
    857   except: 
    858    # Cleanup if the child failed starting. 

/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session) 
    1458        else: 
    1459         err_msg += ': ' + repr(orig_executable) 
-> 1460      raise child_exception_type(errno_num, err_msg) 
    1461     raise child_exception_type(err_msg) 
    1462 

OSError: [Errno 8] Exec format error 

Antwort

0

Mit Selen 3 oder höher, müssen Sie Gecko-Treiber verwenden Firefox zum Laufen zu bringen:

Java

System.setProperty("webdriver.gecko.driver","path of geckodriver.exe"); 
WebDriver driver = new FirefoxDriver(); 

Python

from selenium import webdriver 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
firefox_capabilities = DesiredCapabilities.FIREFOX 
firefox_capabilities['marionette'] = True 
firefox_capabilities['binary'] = 'C:\Users\test\tools\Firefox' 
driver = webdriver.Firefox(capabilities=firefox_capabilities) 
+0

Ich benutze Python auf einem Mac, nicht Java auf Windows, irgendeine Idee, wie man übersetzt? – deltap

+0

aktualisierte meine Antwort für Python sowie – Keshav

0
  1. Stellen Sie sicher, die richtige tar.gz-Datei herunterladen.
  2. Nachdem Sie hier gehen https://github.com/mozilla/geckodriver/releases - suchen Sie nach macos.tar.gz Version von geckodriver.
  3. Laden Sie es auf den Desktop und öffnen Sie es.
  4. Wählen Sie nun im Finder die Option 'Gehe zu' und dann 'Gehe zu Ordner'. Geben Sie/usr/local/bin ein und fügen Sie den Geckodriver in den Papierkorb ein.
+0

welcher Treiber für Mac funktioniert? –

Verwandte Themen