Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Chrome headless file download with Selenium in Python

In headless mode, Chrome defaults to disallowing file downloads.

However, recently they added an option to DevTools to enable this behavior:

https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-setDownloadBehavior

Using Selenium with ChromeDriver in Python, how do I allow file downloads?

like image 744
DBordello Avatar asked Nov 08 '22 17:11

DBordello


1 Answers

Here's the chromedriver ticket to add support for headless file downloads: https://bugs.chromium.org/p/chromedriver/issues/detail?id=1973

File downloading is disabled when using current version of headless Chrome (#60). Support to enable downloading is added to version # 62, which is currently in Dev channel. Need ChromeDriver to support this feature too.

It also references https://bugs.chromium.org/p/chromium/issues/detail?id=696481 which has reproduction steps for the issue:

Chrome Version : Chromium 58.0.3023.0

What steps will reproduce the problem? (1) Set headless mode (--headless) on command-line (2) Point URL to downloadable file (3) Nothing happens

What is the expected result?

When launching in headless mode and pointing to an URL with a downloadable file, file should be downloaded and saved in "Downloads" folder.

What happens instead?

Nothing happens, file doesn't get downloaded.

like image 113
jlarkins Avatar answered Nov 15 '22 07:11

jlarkins