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

Python+Selenium Firefox能否使用相对路径设置下载文件夹?

解决Selenium Firefox Python无法设置相对下载路径的问题

问题背景

在CircleCI的Docker环境中使用Selenium控制Firefox时,希望将下载目录设置为相对路径(如ProjectTitle/downloads),但直接配置各类相对路径写法(./downloads、ProjectTitle/downloads等)均无效,文件始终下载到默认的Downloads文件夹,仅绝对路径能正常工作。

解决方案

Firefox的browser.download.dir配置项仅支持绝对路径,因此需要先将相对路径转换为绝对路径后再传入配置。可以借助Python的os模块实现路径转换,示例代码如下:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
import os

options = Options()
options.set_preference("browser.download.folderList", 2)
options.set_preference("browser.download.manager.showWhenStarting", False)

# 将相对路径转为当前工作目录下的绝对路径
download_dir = os.path.abspath("./downloads")
# 若目标是项目下的子目录,可使用:
# download_dir = os.path.join(os.getcwd(), "ProjectTitle/downloads")

# 确保目标目录存在,不存在则自动创建
os.makedirs(download_dir, exist_ok=True)

options.set_preference("browser.download.dir", download_dir)
options.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")
context.driver = webdriver.Firefox(options=options)

关键说明

  • os.path.abspath():将相对路径转换为基于当前工作目录的绝对路径
  • os.getcwd():获取当前Python脚本的工作目录,搭配os.path.join()可灵活拼接项目内的子路径
  • os.makedirs(download_dir, exist_ok=True):自动创建目标下载目录(若不存在),避免因目录缺失导致Firefox fallback到默认下载位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:48:25