我正在测试一个您可以回复调查的应用程序。然后将调查结果输入excel文件,然后调查管理员可以下载此文件并查看结果。我希望能够自动化测试。
我可以回复调查并下载文件没问题。但是有没有办法我可以打开下载的文件并阅读并验证它的内容?目前使用rspec / capybara进行测试,所以我想找到一个使用这些的解决方案,或者我可以下降到硒水平?
任何帮助都会很棒!
答案 0 :(得分:0)
首先你需要获取下载的文件名,你可以使用下面的代码(Java):
请导入这些文件:
import java.io.File;
import java.util.ArrayList;
import java.util.List;
File folder = new File(download_path);
File[] listOfFilesBeforeDownload = folder.listFiles();
for(File x: listOfFilesBeforeDownload){
System.out.println("Files before download:"+x);
}
//Download the file now
File[] listOfFilesAfterDownload = folder.listFiles();
for(File x: listOfFilesAfterDownload){
String xx=x.toString();
if(xx.contains(".crdownload")){
}
}
listOfFilesAfterDownload = folder.listFiles();
for(File x: listOfFilesAfterDownload){
System.out.println("Files after download:"+x);
}
boolean contains = false;
List<String> results = new ArrayList<String>();
for(int m=0; m<listOfFilesAfterDownload.length; m++) {
for(int n=0; n<listOfFilesBeforeDownload.length; n++) {
String afterFileName=listOfFilesAfterDownload[m].getName();
String beforeFileName=listOfFilesBeforeDownload[n].getName();
if(afterFileName.equals(beforeFileName)) {
contains = true;
break;
}
}
if(!contains) {
filename=listOfFilesAfterDownload[m].getName();
results.add(filename);
}
else{
//System.out.println(" contains = false");
contains = false;
}
}
System.out.println(results);
}
catch (NoSuchElementException e){
System.err.println(e);
}
System.out.println("filename : "+filename);
获取文件名后,您可以从文件中提取内容。像这样的东西,
FileInputStream fis = new FileInputStream(download+fname+"");
// POIFSFileSystem fileSystem = new POIFSFileSystem(fis);
org.apache.poi.xwpf.extractor.XWPFWordExtractor oleTextExtractor
= new XWPFWordExtractor(new XWPFDocument(fis));
String content=oleTextExtractor.getText();