Access to file download dialog in Firefox

前端 未结 11 2392
一个人的身影
一个人的身影 2020-11-22 07:02

Is there any kind of API that can allow me to manipulate a file download dialog in Firefox? (I want to access the one that appears when user does something, not initiate one

相关标签:
11条回答
  • 2020-11-22 07:49

    I didnt unserstood your objective, Do you wanted your test to automatically download file when test is getting executed, if yes, then You need to use custom Firefox profile in your test execution.

    In the custom profile, for first time execute test manually and if download dialog comes, the set it Save it to Disk, also check Always perform this action checkbox which will ensure that file automatically get downloaded next time you run your test.

    0 讨论(0)
  • 2020-11-22 07:52

    I was facing the same issue. In our application the instance of FireFox was created by passing the DesiredCapabilities as follows

    driver = new FirefoxDriver(capabilities);
    

    Based on the suggestions by others, I did my changes as

    FirefoxProfile firefoxProfile = new FirefoxProfile();     
    firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk",
        "application/octet-stream");
    driver = new FirefoxDrvier(firefoxProfile);
    

    This served the purpose but unfortunately my other automation tests started failing. And the reason was, I have removed the capabilities which were being passed earlier.

    Some more browsing on net and found an alternate way. We can set the profile itself in the desired Capabilities.

    So the new working code looks like

    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    
    // add more capabilities as per your need.
    FirefoxProfile firefoxProfile = new FirefoxProfile();        
    firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk",
        "application/octet-stream");
    
    // set the firefoxprofile as a capability
    capabilities.setCapability(FirefoxDriver.PROFILE, firefoxProfile);
    driver = new FirefoxDriver(capabilities);
    
    0 讨论(0)
  • 2020-11-22 07:52

    In addition you can add

          profile.setPreference("browser.download.panel.shown",false);
    

    To remove the downloaded file list that gets shown by default and covers up part of the web page.

    My total settings are:

            DesiredCapabilities dc = DesiredCapabilities.firefox();
            dc.merge(capabillities);
            FirefoxProfile profile = new FirefoxProfile();
            profile.setAcceptUntrustedCertificates(true);
            profile.setPreference("browser.download.folderList", 4);
            profile.setPreference("browser.download.dir", TestConstants.downloadDir.getAbsolutePath());
            profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
            profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/msword, application/csv, application/ris, text/csv, data:image/png, 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.download.manager.showWhenStarting", false);
            profile.setPreference("browser.download.manager.focusWhenStarting", false);
            profile.setPreference("browser.download.useDownloadDir", true);
            profile.setPreference("browser.helperApps.alwaysAsk.force", false);
            profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
            profile.setPreference("browser.download.manager.closeWhenDone", true);
            profile.setPreference("browser.download.manager.showAlertOnComplete", false);
            profile.setPreference("browser.download.manager.useWindow", false);
            profile.setPreference("browser.download.panel.shown",false);
            dc.setCapability(FirefoxDriver.PROFILE, profile);
            this.driver = new FirefoxDriver(dc);
    
    0 讨论(0)
  • 2020-11-22 07:55

    Not that I know of. But you can configure Firefox to automatically start the download and save the file in a specific place. Your test could then check that the file actually arrived.

    0 讨论(0)
  • 2020-11-22 07:55

    Dont know, but you could perhaps check the source of one of the Firefox download addons.

    Here is the source for one that I use Download Statusbar.

    0 讨论(0)
提交回复
热议问题