简体   繁体   中英

Selenium open or save window how to download a file

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)

我通过在 Firefox 中的 about:config 配置配置文件解决了这个问题,添加到browser.helperApps.neverAsk.saveToDiskbrowser.helperApps.neverAsk.openFile首选项我能找到的所有文件类型(但我的是application/force-download\\n )并将此配置文件传递给 FirefoxProfile( profile = FirefoxProfile(r"C:\\Users\\Path\\to\\profile )。奇怪的是,当我在profile.set_preference添加相同的文件扩展名时,它不起作用。我希望这会有所帮助有人在那里挣扎下载

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM