首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证文件是否在Selenium中下载成功?

如何验证文件是否在Selenium中下载成功?
EN

Stack Overflow用户
提问于 2020-12-02 08:50:38
回答 3查看 3K关注 0票数 1

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-12-02 08:52:07

如果存在program.txt文件,下面的代码行返回true或false:

代码语言:javascript
复制
      File f = new File("F:\\program.txt"); 
      f.exists();

您可以使用这个内部自定义的预期condition:##来等待文件下载和显示。

使用:

进口java.io.File;

在任何pageobject类中定义方法

代码语言:javascript
复制
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");
        }
    };
}

我们放弃了一个自定义的预期条件方法,现在将它用作:

在测试代码中,请稍候如下:

代码语言:javascript
复制
wait.until(pageobject.filepresent());

输出:

失败:

通过了

票数 1
EN

Stack Overflow用户

发布于 2020-12-02 08:56:50

代码语言:javascript
复制
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;
}

您应该在此方法中提供要检查的fileName (下载与否),以及下载应该找到可以使用的下载路径的路径:

代码语言:javascript
复制
public static String getDownloadsPath() {

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

Stack Overflow用户

发布于 2022-10-19 10:22:17

代码语言:javascript
复制
 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;
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65104816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档