【发布时间】:2017-09-18 20:00:42
【问题描述】:
使用selenium,我正在尝试下载zip 文件,但尽管many suggestions in this question,下载窗口仍不断弹出。他们不工作的原因不明。可能是因为下载链接在iframe 内?
无论如何,我需要使用 selenium 访问下载弹出窗口以单击 Save to disk 按钮和 OK 按钮,或者右键单击下载链接以选择选项 Save link as ...
我无法发布工作示例,因为相关网页未公开。也许类定义会干扰配置文件设置等。
那么有没有办法访问下载对话框的弹出对话框?
相关问题:here
为了完整起见:以下是所有配置文件设置:
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.dir", download_dir)
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.useDownloadDir", True);
profile.set_preference("browser.download.manager.showWhenStarting", False )
profile.set_preference("pdfjs.disabled", True )
profile.set_preference("browser.helperApps.neverAsk.saveToDisk","application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream")
profile.set_preference("browser.download.manager.alertOnEXEOpen", False);
profile.set_preference("browser.download.manager.focusWhenStarting", False);
profile.set_preference("browser.helperApps.alwaysAsk.force", False);
profile.set_preference("browser.download.manager.alertOnEXEOpen", False);
profile.set_preference("browser.download.manager.closeWhenDone", True);
profile.set_preference("browser.download.manager.showAlertOnComplete", False);
profile.set_preference("browser.download.manager.useWindow", False);
profile.set_preference("services.sync.prefs.sync.browser.download.manager.showWhenStarting",False);
【问题讨论】:
-
您需要在首选项
browser.helperApps.neverAsk.saveToDisk中设置下载文件请求返回的mime。 -
我做到了。请检查我在问题中提供的完整个人资料
-
那么,响应标头中返回的确切 MIME 是什么?不清楚,因为首选项包含许多与您的问题无关的 MIME。
-
这是一个压缩文件。我已经更新了问题
-
一个 zip 文件可以有多个 MIME。您需要使用响应中返回的那个。见stackoverflow.com/questions/36309314/…