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
相关产品推荐
相关产品推荐

