Selenium Firefox驱动程序引发异常OSError:[Errno 8] Exec格式错误

时间:2018-09-25 04:42:52

标签: python selenium firefox webdriver geckodriver

def setUp(self):
   display = Xvfb()
   display.start()
   fp = webdriver.FirefoxProfile()
   fp.set_preference("browser.download.folderList",2)
   fp.set_preference("browser.download.manager.showWhenStarting",False)
   fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv")
       self.browser= webdriver.Firefox(firefox_profile=fp)

webdriver.firefox上,即使我尝试使用geckodriver路径,它也会引发异常

self.browser=webdriver.Firefox(executable_path='/usr/bin/geckodriver',firefox_profile=fp)

但仍然会引发异常

 Traceback (most recent call last):
  File "fbCampaign.py", line 23, in setUp
    self.browser= webdriver.Firefox(executable_path='/usr/bin/geckodriver',firefox_profile=fp)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 157, in __init__
    self.service.start()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)
  File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
OSError: [Errno 8] Exec format error

1 个答案:

答案 0 :(得分:0)

此错误消息...

OSError: [Errno 8] Exec format error

...表示您尝试使用的 geckodriver 二进制文件是为其他平台编译的。

解决方案

GeckoDriver Release Repository下载特定于您的平台(Windows,Mac,Linux)的 GeckoDriver 二进制文件。

您必须选择正确的 GeckoDriver 二进制文件以匹配将在其上运行的基础操作系统:

  • geckodriver-v0.22.0-linux32.tar.gz:对于Linux操作系统。
  • geckodriver-v0.22.0-macos.tar.gz:对于MAC OSX。
  • geckodriver-v0.22.0-win32.zip:对于Windows 32位操作系统。
  • geckodriver-v0.22.0-win64.zip:对于Windows 64位操作系统。

注意:下载后,需要 GeckoDriver 二进制文件解压缩 / untar