Ana içeriğe geç

DownloadManager

DownloadManager, testler sırasında dosya indirmelerini doğrular. Yapılandırılmış indirme dizinini yoklar ve bir dosyanın görünmesini bekler; kısmi indirmeleri zarif bir şekilde ele alır.


Yapılandırma​

testfly.yml
browser:
downloadDir: ./target/downloads # varsayılan

Belirli bir dosyayı bekleme​

import io.testfly.browser.DownloadManager;

@Test
public void exportCsvTest() {
click(By.id("export-csv"));

File downloaded = DownloadManager.waitForFile("report.csv", 15);
softAssert().that(downloaded.exists(), "Downloaded file should exist");
softAssert().that(downloaded.length() > 0, "Downloaded file should not be empty");
}

Herhangi bir dosyayı bekleme​

Dosya adı dinamik olduğunda (örn. bir zaman damgası içerdiğinde):

click(By.id("download-invoice"));

File invoice = DownloadManager.waitForAnyFile(15);
softAssert().that(invoice.getName().endsWith(".pdf"), "Downloaded file should be a PDF");

Testler arasında temizlik​

@BeforeMethod
public void cleanDownloads() {
DownloadManager.clearDownloads();
}

Kısmi indirmeler nasıl ele alınır​

DownloadManager, bu uzantılara sahip dosyaları tamamlanana kadar yok sayar:

UzantıTarayıcı
.crdownloadChrome
.partFirefox

Bir dosya yalnızca var olduğunda, sıfırdan büyük bir boyuta sahip olduğunda ve kısmi indirme uzantısı taşımadığında döndürülür.


İndirme dizinini alma​

File dir = DownloadManager.resolveDownloadDir();
System.out.println("Downloads at: " + dir.getAbsolutePath());

Dizin yoksa otomatik olarak oluşturulur.