【问题标题】:Selenium WebDriver - Auto Download on FirefoxSelenium WebDriver - 在 Firefox 上自动下载
【发布时间】:2015-10-22 15:25:02
【问题描述】:

我尝试使用 Java 中的 Selenium WebDriver 从 Firefox 自动下载。 不幸的是,我找到了很多答案,但这在我的代码中很奇怪。

我试过了

profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.download.dir", "D:\\");
profile.setPreference("browser.helperApps.neverAsk.openFile","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.setPreference("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");

但不可能工作! 我尝试下载的文件类型是 CSV Excel 文件。

在 Mozilla>Options>Application 中,任何自动化都是可见的,尽管我添加了 setPreference。

就在那之前,我刚刚添加了

profile.setPreference("network.proxy.type", 1);
profile.setPreference("network.proxy.http", "XXX.XXX.XXX.XXX");
profile.setPreference("network.proxy.http_port", XXXX);

因为我的公司有代理,但这次在 Mozilla>选项>Internet 设置中,我添加的代理规则是可见的。

【问题讨论】:

    标签: java firefox selenium selenium-webdriver download


    【解决方案1】:

    不久前我遇到了同样的问题,从您的代码中我看到了两种可能性:

    1. 该 MIME 类型不在列表中:

    如果您想要每个应用程序的列表,请检查this site,也许您也应该包括 excel 文件的 MIME 类型。例如:

    application/excel
    application/vnd.ms-excel
    
    1. 完全禁用 browser.helperApps 选项:

    将以下选项添加到您的 Firefox 配置文件中,它将确保您禁用下载对话框。

    profile.set_preference('browser.helperApps.alwaysAsk.force', False)
    

    【讨论】:

      【解决方案2】:

      非常感谢您的回答,我发现我并不孤单,但它似乎经常为人们工作...... 我尝试添加您的代码,但没有区别。

      也许问题出在电脑设置上?

      继续出现的弹窗: Download Popup Firefox

      应该出现的应用规则(当然):csv automated donwload

      顺便说一句,应用程序选项中的任何规则都会以著名的profile.setPreference("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, application/excel, application/vnd.ms-excel"); 出现 不知道该不该。

      我得到的最后一个想法是手动创建配置文件并在您启动 Firefox 浏览器时获取它,但我真的不知道它是否可能,因为我知道我制作的应用程序必须在连接到 VPN 的任何计算机上运行。

      再次感谢您的帮助,如果有人认为有解决方案,那就太好了!

      【讨论】:

        【解决方案3】:

        在这种情况下,没有不同的方式, 进入运行命令创建 Firfox 配置文件

        firefox.exe -P
        

        它会要求您创建新的配置文件并启动该配置文件(参考https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles),手动尝试下载文件,当弹出窗口时检查自动下载,

        然后在你的 selenium 代码中添加 Profile

        <profile_name> = webdriver.FirefoxProfile()
        driver = webdriver.Firefox(<profile_name>)
        driver.get("http://google.com")
        

        现在尝试运行代码,它将自动下载内容而不会弹出任何内容。

        【讨论】:

          猜你喜欢
          • 2016-08-12
          • 2013-09-16
          • 1970-01-01
          • 2018-03-08
          • 2017-03-09
          • 1970-01-01
          • 2018-05-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多