OSError:[Errno 8] Exec格式错误selenium

时间:2016-08-08 15:51:47

标签: python selenium

试图学习如何使用selenium,我设法克服了第一个错误,其中涉及chrome驱动程序不在路径名中,但它引发了另一个错误。

  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")

错误:     回溯(最近一次调用最后一次):

  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

有一个潜在的解决方案here,其中涉及通过Home Brew安装Chrome驱动程序,但该选项无法使用。

有什么想法吗?

2 个答案:

答案 0 :(得分:14)

看起来这是抱怨chromedriver二进制文件的格式。 这可能是因为平台和chromedriver格式不匹配。例如,windows需要chromedriver.exe,而linux和mac有不同的格式。

如果您不想通过软件包管理器安装,只需从https://sites.google.com/a/chromium.org/chromedriver/downloads下载chromedriver

注意:根据您的操作系统选择文件

然后将它放在os上的任何位置并将该路径作为参数传递。如果您不想每次都传递该位置,也可以设置webdriver.chrome.driver环境变量。

答案 1 :(得分:2)

仅供参考,如果您在将chromedriver添加到PATH之前未将其解压缩,也可能会遇到此问题。