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

Selenium调用Firefox报错:无法找到浏览器二进制文件位置求助

解决Firefox二进制文件定位失败的问题

问题根源

你的代码存在几个关键错误,直接导致了这个报错:

  • 原始字符串写法错误:r('C:\...')是语法问题,正确写法应为r"C:\...",多余的括号会让变量无法正确指向Firefox的可执行文件
  • 环境变量配置错误:你把Firefox的exe文件路径加到了PATH中,但PATH需要添加的是exe所在的文件夹路径,而非exe文件本身
  • 变量名不匹配:第二段代码里定义了配置对象options,但初始化驱动时用了未定义的firefox_options,导致配置未生效

修正后的基础版本代码

!pip install selenium

import os
import time
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service

# 初始化Firefox配置
options = Options()
options.headless = True

# 正确设置Firefox二进制文件路径(注意原始字符串的写法)
binary_path = r"C:\Users\Shefali\webdrivers\Mozilla Firefox\firefox.exe"
# 将Firefox所在文件夹添加到环境变量(而非exe文件路径)
firefox_folder = os.path.dirname(binary_path)
os.environ['PATH'] += ';' + firefox_folder

# 配置geckodriver服务
service = Service(executable_path=r'C:\Users\Shefali\webdrivers\geckodriver.exe')
# 绑定二进制文件路径到配置项
options.binary_location = binary_path

# 初始化浏览器驱动
driver = webdriver.Firefox(service=service, options=options)

带下载偏好设置的修正版本

如果需要添加下载相关配置,注意保持变量名统一:

options = Options()
options.headless = True
binary_path = r"C:\Users\Shefali\webdrivers\Mozilla Firefox\firefox.exe"
options.binary_location = binary_path

# 添加下载偏好配置
options.set_preference("browser.download.folderList", 2)
options.set_preference("browser.download.manager.showWhenStarting", False)
# Windows系统下路径需用原始字符串或转义,避免用Linux风格的"/Data"
options.set_preference("browser.download.dir", r"C:\Data")
options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream,application/vnd.ms-excel")

service = Service(executable_path=r'C:\Users\Shefali\webdrivers\geckodriver.exe')
driver = webdriver.Firefox(service=service, options=options)

额外排查点

  • 确保geckodriver版本与Firefox版本匹配,版本不兼容也可能导致启动失败
  • 若仍报错,可尝试用FirefoxBinary类直接指定路径:
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary(r"C:\Users\Shefali\webdrivers\Mozilla Firefox\firefox.exe")
driver = webdriver.Firefox(service=service, firefox_binary=binary, options=options)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:32:29