webentwicklung-frage-antwort-db.com.de

OSError: [Errno 8] Formatierungsfehler Selenium ausführen

Beim Versuch, die Verwendung von Selenium zu lernen, gelang es mir, den ersten Fehler zu überwinden, bei dem der Chrome-Treiber nicht im Pfadnamen enthalten war, es wurde jedoch ein weiterer Fehler ausgegeben. 

  from Selenium import webdriver
    from Selenium.webdriver.common.keys import Keys


    driver = webdriver.Chrome('/Users/williamneal/Scratch/Titanic/chromedriver')
    driver.get("http://www.bbc.com")

Der Fehler: Traceback (letzter Anruf zuletzt):

  File "<ipython-input-1-84256e62b8db>", line 5, in <module>
    driver = webdriver.Chrome('/Users/williamneal/Scratch/Titanic/chromedriver')

  File "/Users/williamneal/anaconda/lib/python3.5/site-packages/Selenium/webdriver/chrome/webdriver.py", line 62, in __init__
    self.service.start()

  File "/Users/williamneal/anaconda/lib/python3.5/site-packages/Selenium/webdriver/common/service.py", line 64, in start
    stdout=self.log_file, stderr=self.log_file)

  File "/Users/williamneal/anaconda/lib/python3.5/subprocess.py", line 950, in __init__
    restore_signals, start_new_session)

  File "/Users/williamneal/anaconda/lib/python3.5/subprocess.py", line 1544, in _execute_child
    raise child_exception_type(errno_num, err_msg)

OSError: [Errno 8] Exec format error

Es gibt eine mögliche Lösung hier , bei der Chrome-Treiber über Home Brew installiert werden. Diese Option steht mir jedoch nicht zur Verfügung. 

Irgendwelche Ideen?

14
user6204921

Es sieht so aus, als würde dies über das Format des Chromedriver-Binärzeichens klagen. __ Möglicherweise liegt dies an einer Diskrepanz zwischen Plattform und Chromedriver-Format. Zum Beispiel benötigt Windows chromedriver.exe, während Linux und Mac unterschiedliche Formate haben.

Wenn Sie nicht über den Paket-Manager installieren möchten, laden Sie einfach chromedriver von https://sites.google.com/a/chromium.org/chromedriver/downloads herunter.

Hinweis: Wählen Sie die Datei gemäß Ihrem Betriebssystem

Platzieren Sie es dann auf dem Betriebssystem und übergeben Sie diesen Pfad als Argument. Sie können auch die Umgebungsvariable webdriver.chrome.driver festlegen, wenn Sie den Speicherort nicht jedes Mal übergeben möchten.

13
Satish Gupta

Zu Ihrer Information: Dieses Problem könnte auch auftreten, wenn Sie den Chromedriver nicht vor dem Hinzufügen zu PATH entpackt haben. 

1
janDro