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

Selenium4启动Firefox报错geckodriver意外退出状态码1

问题根因

这个报错是版本不匹配直接导致的:

  1. Selenium 4.x系列启动驱动时会默认传入--websocket-port参数,用来支撑CDP调试相关的新特性,但当前环境用的geckodriver 0.24.0版本太老,根本没有实现这个参数的支持,收到未知参数后直接退出,才会返回状态码1的异常。
  2. 代码里直接给webdriver.Firefox()传executable_path的写法在Selenium 4中已经被弃用,所以会弹出对应的弃用警告。顺带一提,代码里用的find_element_by_id这类旧定位方法在Selenium 4中也已经被标记为弃用,后续大版本会直接移除,建议一起替换。
解决方法

按两步操作就能修复:

  • 升级geckodriver:把./webdrivers/路径下的旧版geckodriver替换成0.30.0及以上的新版本,这个版本开始才支持--websocket-port参数,能适配Selenium 4.1.0和Firefox 87。如果是Linux/macOS系统,替换完记得执行chmod +x ./webdrivers/geckodriver给文件加上可执行权限。
  • 调整代码适配Selenium 4的新语法:用Service对象传入驱动路径,替换已经弃用的executable_path直接传参方式;同时换成新的元素定位写法,避免后续版本报错。

修正后的参考代码:

from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.common.by import By

geckodriver_path = "./webdrivers/geckodriver"
service = Service(executable_path=geckodriver_path)
driver = webdriver.Firefox(service=service)

driver.get("https://dev.to")
driver.find_element(By.ID, "nav-search").send_keys("Selenium")

改完重新运行就不会再报参数不识别的错误,弃用警告也会消失。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.20 16:15:49