使用capybara或selenium读取excel文件

使用capybara或selenium读取excel文件,selenium,rspec,selenium-webdriver,capybara,Selenium,Rspec,Selenium Webdriver,Capybara,我正在测试一个你可以回复调查的应用程序。然后将调查结果输入excel文件,然后调查管理员可以下载此文件并查看结果。我希望能够自动测试这个 我可以回复调查并下载文件,没有问题。但是,有没有办法打开下载的文件并读取和验证其内容?目前我们的测试使用rspec/capybara,所以我想找到一个使用这些的解决方案,或者我可以降到硒水平 任何帮助都会很好 首先需要获得下载的文件名,可以使用以下代码(Java): 请导入以下文件: import java.io.File; import java.util.

我正在测试一个你可以回复调查的应用程序。然后将调查结果输入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);

是的,你可以用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();