使用Python Seleniumbase设置Chrome下载目录失败求助
问题描述
我正在学习Python Selenium,遇到了无法修改Chrome默认下载目录的问题,希望能得到帮助。
我的环境为Python 3.10.11 / Selenium 4.10 / 最新版Chrome。
整个脚本运行无报错,但并未使用我指定的目录路径,而是在脚本运行目录下创建名为"downloaded_files"的子文件夹并将文件存入其中,相关代码如下:
from selenium import webdriver from seleniumbase import Driver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC download_path = "\\\E275proddwdb\kyote" # Set download folder op = webdriver.ChromeOptions() config = {"download.default_directory":download_path, "safebrowsing.enabled":"false"} op.add_experimental_option("prefs", config) op.headless = False ##Call Chrome Browser service = Service() options = webdriver.ChromeOptions() browser = Driver(browser="chrome", headless=False) browser.get("https://www.kyote.org/mc/login.aspx?url=kplacementMgmt.aspx")
问题分析与解决
你的代码存在三个核心问题:
配置的ChromeOptions未被实际使用
你创建了op对象并配置了下载路径,但随后又重新创建了空的options对象,初始化Driver时完全没传入自定义配置。seleniumbase的Driver类需要通过参数传入设置好的ChromeOptions才能生效。网络路径格式错误
download_path = "\\\E275proddwdb\kyote"是错误的路径格式:- Windows网络共享路径的正确格式应为
r"\\E275proddwdb\kyote"(用原始字符串避免转义问题),或"\\\\E275proddwdb\\kyote"(手动转义反斜杠)。 - 当前的
\\\会被转义成\,\k会被解析为转义字符,实际路径变成\E275proddwdbkyote,导致路径无效,Chrome只能 fallback 到默认下载目录。
- Windows网络共享路径的正确格式应为
seleniumbase Driver的默认行为
seleniumbase的Driver默认会创建downloaded_files文件夹作为下载目录,若未覆盖该设置,它会忽略通过ChromeOptions设置的路径。
修改后的代码
from selenium import webdriver from seleniumbase import Driver # 使用原始字符串处理网络共享路径,避免转义问题 download_path = r"\\E275proddwdb\kyote" # 配置ChromeOptions op = webdriver.ChromeOptions() config = { "download.default_directory": download_path, "safebrowsing.enabled": "false" } op.add_experimental_option("prefs", config) op.headless = False # 初始化Driver时传入自定义options,同时禁用seleniumbase默认下载目录行为 browser = Driver(browser="chrome", options=op, headless=False, download_folder=None) browser.get("https://www.kyote.org/mc/login.aspx?url=kplacementMgmt.aspx")
额外注意事项
- 确保Python进程有权限访问
\\E275proddwdb\kyote网络共享目录,否则Chrome会因权限问题无法写入,仍使用默认目录。 - 若问题依旧,可尝试在config字典中添加
"download.directory_upgrade": True,强制Chrome使用新的下载目录。
内容的提问来源于stack exchange,提问作者JimmyG
相关产品推荐
相关产品推荐

