首页 > 解决方案 > Selenium Firefox 驱动程序引发异常 OSError: [Errno 8] Exec 格式错误

问题描述

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)

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

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

标签: pythonseleniumfirefoxwebdrivergeckodriver

解决方案


此错误消息...

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二进制文件。


推荐阅读