selenium 如何验证该文件在Selify中是否下载成功?

dxpyg8gm  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(291)

我正在使用Chrome。当点击一个按钮时,它正在下载“下载”文件夹中的一个文件(没有任何下载窗口弹出,否则我也可以尝试使用AutoIT工具)。现在我需要验证文件是否下载成功。稍后,我需要验证该文件的内容。文件的内容应与图形用户界面上显示的内容相匹配。

bvk5enib

bvk5enib1#

如果存在Program.txt文件,则以下代码行返回TRUE或FALSE:

File f = new File("F:\\program.txt"); 
      f.exists();

您可以在自定义预期条件中使用此条件:##以等待文件下载并呈现
使用:
导入java.io.File;
在任何PageObject类中定义方法

public ExpectedCondition<Boolean> filepresent() {
    return new ExpectedCondition<Boolean>() {
        @Override
        public Boolean apply(WebDriver driver) {
            File f = new File("F:\\program.txt"); 
            return f.exists();
        }

        @Override
        public String toString() {
          return String.format("file to be present within the time specified");
        }
    };
}

我们放弃了一个自定义预期条件方法,现在将其用作:
在测试代码中,等待如下内容:

wait.until(pageobject.filepresent());

输出:
失败:

通过

mkshixfv

mkshixfv2#

public static boolean isFileDownloaded(String downloadPath, String fileName) {
   File dir = new File(downloadPath);
   File[] dir_contents = dir.listFiles();

   if (dir_contents != null) {
       for (File dir_content : dir_contents) {
            if (dir_content.getName().equals(fileName))
                return true;
       }
   }

   return false;
}

您应该在此方法中提供要检查的文件名(是否已下载)和下载路径,以便找到您可以使用的下载路径:

public static String getDownloadsPath() {

   String downloadPath = System.getProperty("user.home");
   File file = new File(downloadPath + "/Downloads/");
   return file.getAbsolutePath();
}
yduiuuwa

yduiuuwa3#

public boolean isFileDownloaded(String filename) throws IOException
 {
         String downloadPath = System.getProperty("user.home");
         File file = new File(downloadPath + "/Downloads/"+ filename);
         boolean flag = (file.exists()) ? true : false ;
         return flag;
 }

相关问题