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

运行Selenium测试时Firefox浏览器打开数秒后自动关闭问题咨询

Selenium驱动浏览器自动关闭问题说明

这不是Selenium无异常运行时的默认表现,分情况给你理清楚逻辑:

  • 默认原生行为:如果代码中没有显式/隐式调用驱动退出方法,WebDriver启动的浏览器会一直保持运行状态,直到手动关闭或者驱动进程被强制终止。
  • 你现在遇到的「执行完操作1-2秒就自动关闭+控制台报错」,基本是两类原因导致的:
    1. 驱动与浏览器版本不匹配
      Firefox对应的驱动是geckodriver,如果geckodriver大版本和你本地安装的Firefox版本不对应,经常会出现核心操作能跑通、结果能正常打印,但执行完流程后驱动和浏览器的通信链路崩溃,触发浏览器自动退出,同时控制台抛连接中断类的报错。
    2. 代码/测试框架自带自动回收逻辑
      如果你用了with webdriver.Firefox() as driver:这类上下文管理器写法,代码块执行完毕后会自动触发driver.quit()关闭浏览器;如果用了unittest、pytest这类测试框架,默认的teardown流程也会在用例执行结束后自动销毁驱动实例,要是流程里有未捕获的小异常,就会伴随报错退出。
  • 调试阶段如果需要浏览器保持打开直到手动关闭,可以直接在初始化Firefox驱动时加detach配置,Python版本示例代码如下:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options

firefox_options = Options()
firefox_options.add_experimental_option("detach", True)
driver = webdriver.Firefox(options=firefox_options)

加完这个配置后,就算代码执行完流程、触发了驱动退出逻辑,浏览器窗口也会保留,不会自动关闭。

另外你提到控制台有报错,优先看报错栈里的异常类型,如果是ConnectionRefusedError、SessionNotCreatedException这类,基本就是版本匹配的问题,换对应版本的geckodriver就能解决;如果是资源回收类的提示,直接注释掉代码里的driver.quit()调用、关掉测试框架的自动销毁配置就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 21:24:55