我正在測試一個應用程序,您可以對調查作出迴應。然後將調查結果輸入Excel文件,然後調查管理員可以下載此文件並查看結果。我希望能夠自動測試這個。用水豚或硒讀取excel文件
我可以迴應調查和下載文件沒有問題。但是,有沒有辦法可以打開下載的文件並閱讀並驗證其內容?目前在我們的測試中使用rspec/capybara,所以我想找到一個解決方案,使用這些或者我可以下降到硒水平?
任何幫助將是偉大的!
我正在測試一個應用程序,您可以對調查作出迴應。然後將調查結果輸入Excel文件,然後調查管理員可以下載此文件並查看結果。我希望能夠自動測試這個。用水豚或硒讀取excel文件
我可以迴應調查和下載文件沒有問題。但是,有沒有辦法可以打開下載的文件並閱讀並驗證其內容?目前在我們的測試中使用rspec/capybara,所以我想找到一個解決方案,使用這些或者我可以下降到硒水平?
任何幫助將是偉大的!
首先,你需要獲得下載的文件名,你可以使用下面的代碼(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();
原始海報有一件事沒有提及:水豚是紅寶石。您的代碼無論如何都是正確的,可能對OP沒有用處。 – SiKing
嘿夥計們 - 感謝您的回覆。是的,應該提到Caypbara是紅寶石,但不適合用上面的java例子來尋找方法。 – user1523236
是的,你可以用java來做到這一點。您需要使用文件夾選項找到下載的文件。並且您可以在獲取其名稱後讀取該文件。 –
硒只能填寫調查表。在那之後,它已經脫離了Selenium的控制,因爲Selenium所做的就是「自動瀏覽器」。你必須找到一個Ruby的Excel庫來讀取文件。 – sircapsalot