无法使用selenium python从url下载.XLS文件。总是最终得到Firefox下载弹出窗口

时间:2017-12-29 09:12:33

标签: python python-3.x selenium firefox selenium-webdriver

我尝试了各种方法,但我无法下载excel文件。我总是最终看到firefox弹出窗口盯着我看。任何想法如何使这个工作

    import time
    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC

    profile = webdriver.FirefoxProfile()
    profile.set_preference('browser.download.folderList', 2) # customlocation
    profile.set_preference('browser.download.dir','/home/rahul')
    profile.set_preference('browser.download.manager.showWhenStarting', False)
    profile.set_preference('browser.download.panel.shown', False)
    profile.set_preference('browser.helperApps.neverAsk.saveToDisk','application/vnd.ms-excel, application/vnd.ms-excel.addin.macroenabled.12,application/vnd.ms-excel.sheet.binary.macroenabled.12,application/vnd.ms-excel.template.macroenabled.12,application/vnd.ms-excel.sheet.macroenabled.12,application/octet-stream')
    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)
    driver = webdriver.Firefox(profile)
    driver.get('any_url')
    driver.wait = WebDriverWait(driver, 5)
    time.sleep(5)
    export = driver.wait.until(EC.element_to_be_clickable((By.ID, "ExportSpn"))).click()
    time.sleep(5)
    driver.quit()

1 个答案:

答案 0 :(得分:0)

我提到错误的MIME类型。 MIME类型要求下载文件为'application / ms-excel'。如果某人仍然无法解决MIME类型错误,我建议使用https://stackoverflow.com/users/771848/alecxe方法来获取MIME类型。

•使用Firefox手动下载文件,选中“自动保存此文件类型”复选框 •打开帮助 - > firefox浏览器中的信息疑难解答 •找到“配置文件夹”按钮,单击它 •在profile文件夹中找到mimeTypes.rdf文件 •在文本编辑器中打开文件并查找那里提到的mimetypes - 以urn开头的XML节点属性值:mimetype •使用您在browser.helperApps.neverAsk.saveToDisk逗号分隔值中找到的mimetypes