在 Headless Chrome 中下载文件,(python)

Posted

技术标签:

【中文标题】在 Headless Chrome 中下载文件,(python)【英文标题】:Download file in Headless Chrome, (python) 【发布时间】:2021-01-28 18:05:39 【问题描述】:

我尝试了一切以在 headless chrome 中下载文件,但没有任何效果,我使用的是 Chrome 版本 86.0.4240.75 而 ChromeDriver 版本:86.0.4240.22,我已经尝试了任何解决方案,但都没有工作

download_dir = "/tmp/"
options.add_argument("--start--minimized")
options.add_experimental_option("prefs", 
  "download.default_directory": download_dir,
  "download.prompt_for_download": False,
)

browser.get(www.download.com)

browser.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = 'cmd': 'Page.setDownloadBehavior', 'params': 'behavior': 'allow', 'downloadPath': download_dir
command_result = browser.execute("send_command", params)

当我尝试在没有无头模式的情况下指定下载目录时,它会给我一个常见的下载 chrome 错误

【问题讨论】:

【参考方案1】:

我的用例有点不同 - 我正在导航到一个页面并提交一个表单 - 但我正在使用此代码进行下载:

    chrome_options = Options()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--disable-dev-shm-usage")

    chrome_prefs = "download.default_directory": "/root/Downloads"
    chrome_options.experimental_options["prefs"] = chrome_prefs
    chrome_prefs["profile.default_content_settings"] = "images": 2

    driver = webdriver.Chrome(options=chrome_options)
    driver.get('https://...redacted...')

    WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, "//a[contains(text(),'ContractOp')]")))

    submit_button = driver.find_element_by_xpath("//button[contains(.,'Submit')]")
    submit_button.click()
    
    # wait for download to finish

  

希望这对你有帮助。

【讨论】:

以上是关于在 Headless Chrome 中下载文件,(python)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 selenium 在点击事件中下载文件?

如何在 wkwebview 中下载文件

在iOS中下载文件[重复]

在 iPhone 设备中下载文件

csharp 在MVC中下载文件

r 在Shiny中下载文件功能