【问题标题】:Selenium deal with download diaglogsSelenium 处理下载对话
【发布时间】:2021-11-23 10:22:23
【问题描述】:

我正在尝试使用 Selenium 下载一些文件 (.3ds)。 我正在使用 FireFox(v94.0.1 64 位),但如果有帮助,我可以使用其他浏览器。 我正在使用 MacOS。

问题是,当我单击下载链接时,会显示一个对话框:

我不想要任何用户输入;这一切都应该是自动的。 我需要让 Selenium 点击save file,检查do this automatically...,然后点击OK

我已经尝试了this帖子中的解决方案,但始终显示对话框:

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.panel.shown", False)
profile.set_preference("browser.helperApps.neverAsk.openFile","application/octet-stream")
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.showWhenStarting", False);
profile.set_preference("browser.download.manager.alertOnEXEOpen", False);
profile.set_preference("browser.download.manager.focusWhenStarting", False);
profile.set_preference("browser.download.folderList", 2);
profile.set_preference("browser.download.useDownloadDir", True);
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);
profile.set_preference("browser.download.dir","/Users/myusername/Downloads")
browser = webdriver.Firefox(firefox_profile=profile,executable_path=GeckoDriverManager().install())
browser.maximize_window()

我该如何解决这个问题?

【问题讨论】:

    标签: python python-3.x selenium


    【解决方案1】:

    你可以试试下面的代码吗,只需要为 3ds 文件设置_preference。

    profile = webdriver.FirefoxProfile()
    profile.set_preference("browser.download.panel.shown", False)
    profile.set_preference("browser.helperApps.neverAsk.openFile","application/octet-stream")
    profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/3ds, 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.showWhenStarting", False);
    profile.set_preference("browser.download.manager.alertOnEXEOpen", False);
    profile.set_preference("browser.download.manager.focusWhenStarting", False);
    profile.set_preference("browser.download.folderList", 2);
    profile.set_preference("browser.download.useDownloadDir", True);
    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);
    profile.set_preference("browser.download.dir","/Users/myusername/Downloads")
    browser = webdriver.Firefox(firefox_profile=profile,executable_path=GeckoDriverManager().install())
    browser.maximize_window()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 2018-04-17
      相关资源
      最近更新 更多