2017-02-27 144 views
2

我有一个场景,我点击下载链接在我的应用程序,它下载我的本地驱动器中的Excel表。我使用硒webdriver自动化和验证,如果文件实际上已下载。我能够下载文件并验证其在本地文件系统中的存在。但是,如何在我的项目的资源目录中制作webdriver下载文件。如何下载Java项目的资源目录中的文件

这就是我现在所做的:

System.setProperty("webdriver.chrome.driver", Constants.Chrome_Driver_Path_Win); 
      HashMap<String, Object> chromePrefs = new HashMap<String, Object>(); 
      chromePrefs.put("profile.default_content_settings.popups", 0); 
      chromePrefs.put("download.default_directory", "C:\\pixeldownload"); 
      ChromeOptions options = new ChromeOptions(); 
      options.setExperimentalOption("prefs", chromePrefs); 
      DesiredCapabilities cap = DesiredCapabilities.chrome(); 
      cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 
      cap.setCapability(ChromeOptions.CAPABILITY, options); 
      driver = new ChromeDriver(cap); 

现在我硬编码“C:\ pixeldownload”但我想将文件放入我的Java项目中的“资源”文件夹中。

chromePrefs.put(“download.default_directory”,“resource”)。把目的地作为“资源”并不能帮助我。我如何下载“资源”目录中的文件。

public boolean isFileDownloaded(String downloadPath,String fileName) { 
     boolean flag = false; 
     File dir = new File(System.getProperty("user.dir") + "\\resources\\downloads"); 
     File[] dir_contents = dir.listFiles(); 
     for (int i = 0; i < dir_contents.length; i++) { 
      if (dir_contents[0].getName().contains(fileName)) 
       return flag=true; 
       } 
     return flag; 
    } 

回答

2

如果你想将文件下载到您的测试资源目录试试这个:

String downloadDir = System.getProperty("user.dir") + "\\src\\test\\resources"; 

chromePrefs.put("download.default_directory", downloadDir); 

我使用这个在我的项目。

+0

谢谢@baadnews,它现在正在工作。有没有一种方法来验证文件是否真的在脚本的帮助下下载的?我正在使用类似这样的东西,但是当我用“System.getProperty(”user.dir“)+”\\ src \\ test \\ resources“替换下载路径时,我在原始发布中附加了方法 – Chuchoo

+0

我将创建一个单独的线程,如果这太多,不能问在一个。 – Chuchoo

+0

这应该是被接受的答案。 –

相关问题