I have set up webdriver with multiple configurations and it still fails to download files only in headless mode.
I've tried adding POST commands
chrome_options = webdriver.ChromeOptions()
prefs = {
"download.default_directory": path,
# "directory_upgrade": True,
# "safebrowsing.enabled": False,
"safebrowsing.disable_download_protection": True}
chrome_options.add_experimental_option("prefs", prefs)
if headless==True:
chrome_options.add_argument('--headless')
# chrome_options.add_argument('log-level=2')
# chrome_options.add_argument('--disable-extensions')
# chrome_options.add_argument('--disable-gpu')
# chrome_options.add_argument('--no-sandbox')
local="/home/rittle/Workspace/portal_dl/chromedriver"
EC2="/home/ubuntu/portal_dl/chromedriver"
browser = webdriver.Chrome(executable_path=local,
chrome_options=chrome_options,
)
browser.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': path}}
command_result = browser.execute("send_command", params)
I expect there to be a .crdownload file once a button on the page is clicked but my /tmp/ directory is empty, this code works fine without headless