如何使用 Selenium 上的 Ubuntu 在 Chrome 上设置下载目录

问题描述 投票:0回答:1

在我的 Ubuntu EC2 实例上使用 Selenium,我试图将 Chrome 的下载目录设置为

/home/ubuntu/resolucion
,但下载的文件将转到
/home/ubuntu
(我的脚本
main.py
所在的位置)。我尝试不使用
os
而只是键入
"download.default_directory": "/home/ubuntu/resolucion"
但仍然无法正常工作。下面的代码只在我的电脑上运行良好。

注意:浏览器日志没有错误,脚本执行期间也没有任何错误。

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']}}
python ubuntu selenium-webdriver selenium-chromedriver
1个回答
0
投票

您可以尝试使用

--user-data-dir
download.default_directory
而不是
options.add_experimental_option

来设置下载位置

删除所有

options.add_experimental_option
代码并添加

options.add_argument(f"--user-data-dir={dir_base}/user-data")
options.add_argument(f"--download.default_directory={carpeta_resolucion}")

这可能会解决您的问题,并允许您在 EC2 上设置下载目录

© www.soinside.com 2019 - 2024. All rights reserved.