簡體   English   中英

Selenium 打開或保存窗口如何下載文件

[英]Selenium open or save window how to download a file

我正在嘗試使用 Selenium 保存文件,我可能閱讀了有關 stackoverflow 的所有相關問題,但仍然無濟於事。

有人可以看看我的代碼嗎? 也許我錯過了一些明顯的東西。 或者也許有另一種使用 Selenium 下載它的方法?

我的代碼:

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添加相同的文件擴展名時,它不起作用。我希望這會有所幫助有人在那里掙扎下載

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM