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

在Ubuntu EC2实例上通过Selenium设置Chrome下载目录的问题

Ubuntu EC2实例中Selenium Chrome下载目录设置不生效问题解决

问题描述

在Ubuntu EC2实例上使用Selenium控制Chrome时,尝试将下载目录设置为/home/ubuntu/resolucion,但下载文件始终保存到脚本main.py所在的/home/ubuntu目录。已尝试直接写死绝对路径(不使用os模块),但仍未生效。该代码在本地电脑可正常运行,且浏览器日志、脚本执行过程无任何报错。

代码示例(main.py)

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import os

options = webdriver.ChromeOptions()
options.add_argument("--no-sandbox")
options.add_argument("--headless")

dir_base = os.path.abspath(os.curdir)
carpeta_resolucion = os.path.join(dir_base, "resolucion")

options.add_experimental_option("prefs", {
    "download.default_directory": carpeta_resolucion,
    "browser.downloads.dir": carpeta_resolucion,
    "directory_upgrade": True,
    "download.prompt_for_download": False,
    "download.extensions_to_open": "application/xml",
    "safebrowsing.enabled": True
})

print(options.to_capabilities())

driver = webdriver.Chrome(service=Service(
    ChromeDriverManager().install()), options=options)

options.to_capabilities()输出

{'browserName': 'chrome', 'pageLoadStrategy': 'normal', 'goog:chromeOptions': {'prefs': {'download.default_directory': '/home/ubuntu/resolucion', 'browser.downloads.dir': '/home/ubuntu/resolucion', 'directory_upgrade': True, 'download.prompt_for_download': False, 'download.extensions_to_open': 'application/xml', 'safebrowsing.enabled': True}, 'extensions': [], 'args': ['--no-sandbox', '--headless']}}

解决步骤

  1. 检查并修复目录权限
    确保目标下载目录存在且当前用户拥有读写权限:
mkdir -p /home/ubuntu/resolucion
chown ubuntu:ubuntu /home/ubuntu/resolucion
chmod 755 /home/ubuntu/resolucion
  1. 添加--disable-dev-shm-usage参数
    EC2实例默认/dev/shm空间较小,可能导致Chrome配置异常,在ChromeOptions中添加该参数:
options.add_argument("--disable-dev-shm-usage")
  1. 直接使用绝对路径
    避免依赖当前工作目录,直接指定完整绝对路径:
carpeta_resolucion = "/home/ubuntu/resolucion"
  1. 调整下载偏好配置
    移除或修正与下载文件类型不匹配的配置项,确保目录升级设置生效:
options.add_experimental_option("prefs", {
    "download.default_directory": "/home/ubuntu/resolucion",
    "download.directory_upgrade": True,
    "download.prompt_for_download": False,
    "safebrowsing.enabled": True,
    # 若下载文件不是XML格式,注释或删除此行
    # "download.extensions_to_open": "application/xml"
})
  1. 验证Chrome与ChromeDriver版本匹配
    确保两者版本一致(允许相差1个大版本),执行以下命令检查:
google-chrome --version
chromedriver --version

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 20:42:15