使用capybara或selenium读取excel文件
我正在测试一个你可以回复调查的应用程序。然后将调查结果输入excel文件,然后调查管理员可以下载此文件并查看结果。我希望能够自动测试这个 我可以回复调查并下载文件,没有问题。但是,有没有办法打开下载的文件并读取和验证其内容?目前我们的测试使用rspec/capybara,所以我想找到一个使用这些的解决方案,或者我可以降到硒水平使用capybara或selenium读取excel文件,selenium,rspec,selenium-webdriver,capybara,Selenium,Rspec,Selenium Webdriver,Capybara,我正在测试一个你可以回复调查的应用程序。然后将调查结果输入excel文件,然后调查管理员可以下载此文件并查看结果。我希望能够自动测试这个 我可以回复调查并下载文件,没有问题。但是,有没有办法打开下载的文件并读取和验证其内容?目前我们的测试使用rspec/capybara,所以我想找到一个使用这些的解决方案,或者我可以降到硒水平 任何帮助都会很好 首先需要获得下载的文件名,可以使用以下代码(Java): 请导入以下文件: import java.io.File; import java.util.
任何帮助都会很好 首先需要获得下载的文件名,可以使用以下代码(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);
是的,你可以用java来做。您需要使用文件夹选项查找下载的文件。您可以在获得文件名后读取该文件。Selenium只适合填写调查。在那之后,它就不受Selenium的控制了,因为Selenium所做的只是“自动化浏览器”。你必须找到一个ruby excel库来读取文件。有一件事原始海报没有提到:水豚是ruby。你的代码,无论多么正确,都可能对OP毫无用处。嘿,伙计们,谢谢你们的回复。是的,我应该提到caypbara是ruby,但我会用上面的java示例来寻找一种方法。
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();