Ubuntu20.04下Python调用Firefox跑Selenium报状态码64是什么含义?
geckodriver 状态码 64 含义说明
对应完整报错信息如下:
File "tst3.py", line 3, in <module> driver = webdriver.Firefox() File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/firefox/webdriver.py", line 175, in __init__ self.service.start() File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/common/service.py", line 101, in start self.assert_process_still_running() File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/common/service.py", line 113, in assert_process_still_running raise WebDriverException( selenium.common.exceptions.WebDriverException: Message: Service geckodriver unexpectedly exited. Status code was: 64
该状态码属于Unix系通用标准错误码,对应含义为命令行参数无效,即geckodriver启动时接收到了无法识别、格式错误或者互相冲突的启动参数,因此主动退出返回该状态码。
常见触发原因
- geckodriver版本和Firefox浏览器版本不兼容:不同版本的geckodriver对Firefox的版本有明确要求,版本不匹配时会出现参数不兼容的问题
- Selenium版本和geckodriver版本不匹配:旧版Selenium会传入已经被新版geckodriver废弃的启动参数,导致参数识别失败
- 手动配置的Firefox启动参数存在语法错误或者拼写错误,导致geckodriver无法正常解析
排查方案
- 确认版本匹配关系:Selenium 3.x系列建议搭配v0.29.1及以下版本geckodriver,Selenium 4.x系列建议搭配最新稳定版geckodriver,同时确保geckodriver版本支持当前安装的Firefox浏览器版本
- 测试默认参数启动:暂时注释代码中所有自定义的FirefoxOption配置项,使用默认参数启动浏览器,确认是否是自定义参数错误导致的问题
- 卸载现有geckodriver后,使用
webdriver-manager工具自动安装匹配版本的驱动,规避手动安装的版本匹配问题
内容的提问来源于stack exchange,提问作者Влад Смоленский
相关产品推荐
相关产品推荐

