Selenium open or save window how to download a file

Viewed 354

I'm trying to save a file using Selenium and I read probably all related questions on stackoverflow, but still to no avail.

Can someone have a look at my code please? Maybe I'm missing something obvious. Or maybe there is another way of downloading it with Selenium?

My code:

def attachments(url):
    profile = FirefoxProfile()
    profile.set_preference("browser.download.folderList", 2)
    profile.set_preference('browser.download.manager.showWhenStarting', False)
    profile.set_preference("browser.download.dir", r"C:\Users\Herminne\Desktop\Version")
    profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip')
    profile.set_preference('browser.helperApps.neverAsk.openFile','application/zip')
    profile.set_preference('browser.helperApps.alwaysAsk.force', False)
    profile.set_preference('browser.download.manager.alertOnEXEOpen', False)
    profile.set_preference('browser.download.manager.focusWhenStarting', False)
    profile.set_preference('browser.download.manager.useWindow', False)
    profile.set_preference('browser.download.manager.showAlertOnComplete', False)
    profile.set_preference('browser.download.manager.closeWhenDone', False)
    profile.set_preference("pdfjs.disabled", True)
    driver = webdriver.Firefox(firefox_profile=profile)
    driver.get(url)
    username = driver.find_element_by_id('ctl00_MainPlaceHolder_UserName')
    password = driver.find_element_by_id('ctl00_MainPlaceHolder_Password')
    username.send_keys(payload.get('username'))
    password.send_keys(payload.get('password'))
    username.send_keys(keys.ENTER)
    time.sleep(60)
    driver.find_element_by_id(
        'ctl00_MenuPlaceHolder_btnOrderAttachmentsFromClaim').click()
    time.sleep(60)
    driver.find_element_by_tag_name('label').click()
    time.sleep(15)
    driver.find_element_by_id('ctl00_Content_btnDownload').click()
    time.sleep(60)
1 Answers

I solved it with configuring profile in about:config in Firefox, adding to browser.helperApps.neverAsk.saveToDisk and browser.helperApps.neverAsk.openFile preferences all the file types I could find (but mine was application/force-download\n) and passing this profile to FirefoxProfile(profile = FirefoxProfile(r"C:\Users\Path\to\profile). Weirdly, when I add the same file extensions in profile.set_preference, it doesn't work. I hope this will help someone out there struggling with downloads

Related