Whatever I do, the files keep getting printed into my Downloads (Windows default) folder, rather than specified folder. I did my research and apparently the savefile.default_directory option should be used rather than download.default_directory but it doesn't work anyway. I tried removing the trailing \\ from the path with no success. This is on a work PC if it makes any difference, Windows 10 machine.
import os
os.environ["PATH"] += os.pathsep + r'C:\Program Files (x86)\Chromedriver99';
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
options = Options()
options.add_experimental_option(
"prefs",
{
"download.prompt_for_download": False,
"profile.default_content_setting_values.automatic_downloads": 1,
"download.default_directory": r"C:\Users\Lucas\Downloads\ECV\\",
"savefile.default_directory": r"C:\Users\Lucas\Downloads\ECV\\",
"download.directory_upgrade": True,
"safebrowsing.enabled": True # Some answers include this, makes no difference
},
)
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
# PDF printing settings
print_settings = {
"recentDestinations": [{
"id": "Save as PDF",
"origin": "local",
"account": "",
}],
"selectedDestinationId": "Save as PDF",
"version": 2,
"isHeaderFooterEnabled": False,
"isLandscapeEnabled": True
}
prefs = {'printing.print_preview_sticky_settings.appState': json.dumps(print_settings)}
options.add_experimental_option('prefs', prefs)
options.add_argument('--kiosk-printing') # Some answers include this, makes no difference
driver = webdriver.Chrome(options=options)
driver.get('https://stackoverflow.com/')
driver.execute_script('window.print();')