Python3+Geckodriver无头Firefox突发状态码64退出错误
针对你遇到的Geckodriver意外退出(状态码64)问题,结合你的环境(CentOS7、Firefox 102.15esr、geckodriver 0.33.0、Selenium4.13.0),可以尝试以下排查步骤:
检查Geckodriver权限
确保/home/user2/bin/geckodriver拥有可执行权限,执行命令:chmod +x /home/user2/bin/geckodriver同时排查CentOS7的SELinux限制,临时关闭测试:
setenforce 0若问题解决,需配置SELinux允许该文件执行,避免后续再次触发。
验证Firefox依赖完整性
手动启动Firefox无头模式,检查是否能正常运行:/usr/bin/firefox -headless -no-remote若启动失败,终端会提示缺失的系统库(如
libdbus-glib-1.so.2等),使用yum安装对应依赖包即可。补充无头模式及必要启动参数
你的代码未显式启用无头模式,且CentOS7环境可能需要额外参数规避沙箱限制,修改代码如下:from selenium.webdriver.firefox.options import Options from selenium import webdriver options = Options() options.binary_location = "/usr/bin/firefox" # 启用无头模式 options.add_argument("--headless") # 规避沙箱限制 options.add_argument("--no-sandbox") # 解决/dev/shm空间不足问题 options.add_argument("--disable-dev-shm-usage") # 可选:禁用GPU加速 options.add_argument("--disable-gpu") driver = webdriver.Firefox(options=options)启用Geckodriver日志定位细节
取消注释service_log_path参数,生成详细日志:driver = webdriver.Firefox(options=options, service_log_path='/tmp/geckodriver.log')执行脚本后查看
/tmp/geckodriver.log,日志中会包含Firefox启动失败、通信异常等具体原因,帮助精准定位问题。确认版本兼容性
虽然geckodriver 0.33.0官方支持Firefox 102-114,但ESR版本可能存在特殊兼容问题。可以尝试将geckodriver升级到0.34.0(适配Firefox 115+,部分102ESR环境也能兼容),或重新下载对应版本的geckodriver替换现有文件,避免文件损坏导致的异常。
内容的提问来源于stack exchange,提问作者B Chase

