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

Selenium ChromeDriver在Ubuntu虚拟机无头模式无法下载文件求助

解决方案:Ubuntu 20.04下Selenium Chrome无法下载文件问题

针对你遇到的root用户运行Selenium脚本时,Chrome无法将文件保存到指定目录的问题,可尝试以下几个方案:

1. 禁用Chrome沙箱并添加必要的无头参数

Chrome默认禁止root用户运行沙箱模式,这会导致下载等功能异常。修改你的ChromeOptions配置,添加以下参数:

chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--headless=new")  # 若使用无头模式,推荐该新版无头参数
chrome_options.add_argument("--disable-gpu")

2. 确保下载路径为绝对路径且权限有效

确认file_download_folder_path是绝对路径(如/opt/my_downloads),而非相对路径。同时手动验证root用户能否在该目录创建文件:

touch /opt/my_downloads/test_file.txt

若无法创建,重新设置目录权限:

chmod -R 755 /opt/my_downloads

3. 补充Chrome下载相关偏好设置

在现有prefs基础上,添加以下配置增强下载稳定性:

prefs = {
    "download.default_directory": file_download_folder_path,
    "download.prompt_for_download": False,
    "download.directory_upgrade": True,
    "safebrowsing_for_trusted_sources_enabled": False,
    "safebrowsing.enabled": False,
    "profile.default_content_setting_values.notifications": 2,
    "download.open_pdf_in_system_reader": False,  # 避免PDF等文件调用系统阅读器
    "plugins.always_open_pdf_externally": False
}
chrome_options.add_experimental_option("prefs", prefs)

4. 启用Chrome日志定位问题

如果以上方案无效,开启Chrome日志输出,查看下载过程中的具体错误:

chrome_options.add_argument("--enable-logging")
chrome_options.add_argument("--v=1")

运行脚本后,日志会包含下载失败的具体原因(如路径、权限或Chrome内部错误)。

5. 检查ChromeDriver的可执行权限

确保chromedriver文件具备执行权限:

chmod +x /path/to/chromedriver

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 05:22:34