You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium测试报错:Geckodriver意外退出(状态码64)兼容问题求助

解决Selenium中geckodriver意外退出(状态码64)的问题

核心原因与修复步骤

1. 修正无头模式参数

Firefox的无头模式无需--disable-gpu参数(该参数仅针对Chrome),且旧版--headless参数在部分环境下可能触发兼容性问题。建议改用Firefox官方推荐的新无头模式参数:

修正后的conftest.py代码:

import pytest
from selenium import webdriver
from selenium.webdriver.firefox.service import Service as ff_service

options = webdriver.FirefoxOptions()
options.add_argument("--headless=new")  # 启用Firefox新无头模式
# 移除无用的--disable-gpu参数
driver_path = ff_service("/usr/bin/geckodriver")
driver = webdriver.Firefox(service=driver_path, options=options)
driver.maximize_window()

2. 检查geckodriver执行权限

确保/usr/bin/geckodriver拥有可执行权限,执行以下命令:

chmod +x /usr/bin/geckodriver

3. 版本兼容性调试(若上述步骤无效)

尽管官方文档显示geckodriver 0.31.0支持Firefox 98-101,但部分Linux环境下仍可能存在适配问题:

  • 升级geckodriver至0.32.0(与Firefox 100、Selenium 4.1.0的兼容性更稳定)
  • 或临时降级Firefox至99版本,配合现有geckodriver测试

4. 查看详细错误日志

添加日志输出定位具体故障点:

import pytest
import logging
from selenium import webdriver
from selenium.webdriver.firefox.service import Service as ff_service

# 开启DEBUG日志
logging.basicConfig(level=logging.DEBUG)

options = webdriver.FirefoxOptions()
options.add_argument("--headless=new")
driver_path = ff_service("/usr/bin/geckodriver")
driver = webdriver.Firefox(service=driver_path, options=options)
driver.maximize_window()

运行测试后,通过DEBUG日志可以获取geckodriver退出的具体原因,进一步排查问题。

内容的提问来源于stack exchange,提问作者user18148705

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:18:21