我如何确定下载未完成/正在进行中?因为我想在下载完成后关闭Web驱动程序。
WebDriver: Chrome
这样的示例代码,假设chrome驱动程序设置已准备就绪。
@Test
public void testDownloadPdf(){
// here is the selenium java code to download pdf.
// when do i perform driver.close();
}
答案 0 :(得分:2)
通常,最好关闭@AfterClass
中的驱动程序。
如果您知道确切的文件名和预期位置,则可以使用Paths
String file_path_full = "C:\\users\\username\\downloads\\yourpdffile.pdf";
while(Files.notExists(Paths.get(file_path_full))) {Thread.sleep(10000);}
答案 1 :(得分:-1)
我发现了这个...对我来说很有效
在这里,我使用的是FileUtils.sizeOfDirectory(downloadfolder)
,它将返回目录的大小,并每隔5秒检查一次大小是否相等。如果文件大小相等,则下载完成。
private void waitForDownloadFinished() throws Exception {
try {
String path = "/Download/path/";
if (path != null) {
File folder = new File(path);
long size, reSize;
do {
size = FileUtils.sizeOfDirectory(folder);
Thread.sleep(5000);
reSize = FileUtils.sizeOfDirectory(folder);
} while (size != reSize);
System.out.println("Download completed");
}
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
getWebBrowser().quit();
}
}