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
相关产品推荐
相关产品推荐

