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

Linux下Python调用Firefox遇SessionNotCreatedException:浏览器路径不存在

问题分析与解决

你的代码存在的问题

  1. 缺少Service类导入:修改后的代码使用了Service但未从selenium.webdriver.firefox.service导入,运行会直接触发NameError: name 'Service' is not defined错误。
  2. geckodriver路径错误:/home/karina/snap/geckodriver看起来是目录而非可执行文件路径。如果是通过Snap安装的geckodriver,正确路径应为/snap/bin/geckodriver;如果是手动下载的,需指向具体的可执行文件(比如/home/karina/snap/geckodriver/geckodriver)。
  3. 未指定Firefox二进制文件路径:Snap版Firefox的实际可执行路径并非firefox.launcher,默认情况下Selenium无法找到正确的浏览器位置,必须手动指定Firefox的二进制路径。

修正后的代码示例

先确保已安装Snap版geckodriver(未安装则执行sudo snap install geckodriver),再使用以下代码:

from selenium.webdriver import Firefox
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options

# 指定Snap版Firefox的二进制路径
options = Options()
options.binary_location = "/snap/bin/firefox"

# 指定geckodriver路径(Snap安装的geckodriver用此路径)
service = Service(executable_path="/snap/bin/geckodriver")

# 初始化浏览器
browser = Firefox(service=service, options=options)

额外说明

  • 若手动下载geckodriver,需将可执行文件放到合适路径(如/usr/local/bin),或在代码里指定完整的可执行文件路径,同时要确保文件有执行权限(执行chmod +x geckodriver)。
  • Snap版软件的路径与常规deb包安装的不同,Selenium默认配置不会自动适配,因此必须手动指定浏览器二进制文件的位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 08:07:07