More than likely, the problem here is that the download location is associated with a specific user profile, and the Chrome driver follows the same pattern as the Firefox driver in that by default, it uses a copy of a completely clean user profile every time it is run, so the download location you set for your user is never picked up by Selenium. In Firefox, the solution is to create a custom Firefox profile, then tell Selenium to run with that. I'd bet there is an analogous function in the Chrome driver.
According to docs:
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
WebDriver driver = new ChromeDriver(capabilities);
Yes that is Java, but it should be fairly easy to translate to Python. Also, note the docs say that there is a known bug about being able to set a custom profile.
I think I found a mildly hacky solution that should work for you.
- Go to the master folder that contains user/home folders on the OS you are running under
- Under the SYSTEM user folder, find the Chrome user data directory
- Open the Preferences file (it's raw text, so any text editor will work)
- Under the "download" node, create or modify the "default_directory" node to be whatever download location you want
Note that these steps assume that Selenium has actually run Chrome at least once under the SYSTEM user. If not, you can manually create the directories needed by running Chrome under the SYSTEM user yourself, from the terminal for instance.