version: Selenium WebDriver 2.53.0、JUnit4

Seleniumでダウンロードダイアログを出さずに強制的にファイルダウンロードして、その後ファイルを検証したい。
ダウンロードする場所は、時間が経ったら消えてくれるように、Tempディレクトリ以下にする。
また、ダウンロードした後にファイルを簡単に取得できるようにTempディレクトリの下にSelenium起動時刻がついたディレクトリを作成して、その直下にダウンロードする。

WebDriver driver;

Path tempDir = Paths.get(System.getProperty("java.io.tmpdir"), "seleniumtest", Long.toString(System.currentTimeMillis()));

@SneakyThrows(IOException.class)
@Before
public void setup() {
    Files.createDirectories(tempDir);

    FirefoxProfile profile = new FirefoxProfile();
    profile.setPreference("browser.download.folderList", 2);
    profile.setPreference("browser.download.dir", tempDir.toString());
    profile.setPreference("browser.download.useDownloadDir", true);
    profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "text/html, text/plain, application/vnd.ms-excel, text/csv, application/zip, text/comma-separated-values, application/octet-stream");
    driver = new FirefoxDriver(profile);
}

@SneakyThrows(InterruptedException.class)
private void download() {
    driver.findElement(By.id("btnDownload")).click();
    TimeUnit.SECONDS.sleep(3);
}

@Test
public void ダウンロード() {
    // ダウンロードページまでの遷移は略
    download();

    File file = Arrays.stream(tempDir.toFile().listFiles())
                    .sorted(Comparator.comparing(File::lastModified).reversed())
                    .findFirst()
                    .get();
    assertEquals("expectedFileName", file.getName());
}}