Friday, 21 August 2015

How to download file with Selenide using one line of code



Use:
File downloadedFile = $("#your-link").download();
Result:
File downloads  automatically to reportFolder  -- "build/reports/tests" (this is default for Gradle projects).

You can change this folder in test: 
reportFolder="path/to/downloads/folder";

Example:
    
    @Test
    public void userCanDownloadFile() throws FileNotFoundException, IOException
    {
     // Folder to store downloads and screenshots to.
     reportsFolder = "./src/test/profiles/chrome/downloads/";
     
     open("http://chromedriver.storage.googleapis.com/index.html?path=2.16/");

     // Download files
     $("a[href='/2.16/chromedriver_win32.zip']").download();
        $(By.xpath(".//a[@href='/2.16/chromedriver_mac32.zip']")).download();
  
        // Count files in folder, assert 2
        int downloadsCount = new File(reportsFolder+"2.16").listFiles().length;
        assertEquals("Should be 2 files but founded " + downloadsCount,  
              downloadsCount, 2); 
        
        // Clean after test
        FileUtils.deleteDirectory(new File(reportsFolder+"2.16"));
    }

No comments:

Post a Comment