首页 > 解决方案 > 如何在 Selenium 中验证该文件是否成功下载?

问题描述

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

标签: seleniumselenium-webdriver

解决方案


如果 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());

输出:

失败的:

在此处输入图像描述

通过

在此处输入图像描述


推荐阅读