2014-01-21 19 views
4
下載彈出

請提出一個想法,有以下幾點實現下載文件存放位置和操作使用硒的webdriver與JAVA

1.how來處理在IE的下載彈出硒的webdriver與JAVA? want to save that Xml file

2.如何使用JAVA在不同位置存儲該xml文件?

注意:我們將通過輸入的「N」號和每個輸入有一個XML文件,要求所有的XML文件下載,並在不同的位置保存

+0

請看看我在這個趨勢中的答案。 http://stackoverflow.com/questions/21217087/how-to-make-browser-closed-after-completing-download/21241682#21241682 – Major

回答

8

我會建議您不要使用硒自動文件下載。這是你不想墮落的陷阱。文件下載在不同的瀏覽器中工作方式不同人們會推薦使用AutoIT,但它只適用於Windows,所以不能進行跨平臺測試。由於您使用Java綁定,因此您可以使用Robot類將鼠標指針移動到窗口上的某個位置併發送本地點擊。根據我的經驗,這個解決方案非常薄。你不知道你必須點擊的確切位置,用Robot你會盲目地點擊事物。爲了補充這一點,當你在使用硒網格的遠程機器上運行測試時,事情變得更加困難。

那麼你如何下載文件?只需獲取底層鏈接即可下載DOM中可用的文件併發出GET請求。如果要驗證文件,請下載內容。如果您不想驗證內容,只需迴應代碼即可。 Here是一個神奇的博客,用Java示例說明如何使用http請求在後臺下載文件,並詳細解釋爲什麼使用硒下載文件是一個壞主意。

0

低於設定在DesiredCapabilityObject偏好嘗試設置初始化驅動程序對象之前 -

File ffProfileFolder = new File("." + File.separator + "src" + File.separator 
        + "test" + File.separator + "resources" + File.separator + "FFProfiles" + File.separator + "AutoUser" + File.separator); 
File workspacePath = new File(".."+File.separator); 
String workspaceCanPath = workspacePath.getCanonicalPath(); 
String downloadDir = workspaceCanPath+File.separator+"Downloads"; 
OSInteractions.createDir(downloadDir); 

profileAutoUser.setPreference("browser.download.manager.showWhenStarting",false); 
profileAutoUser.setPreference("browser.download.dir",downloadDir); 
profileAutoUser.setPreference("browser.download.defaultFolder",downloadDir); 
profileAutoUser.setPreference("browser.download.lastDir",downloadDir); 
profileAutoUser.setPreference("browser.download.folderList",2); 
profileAutoUser.setPreference("browser.download.useDownloadDir",true); 
profileAutoUser.setPreference("browser.helperApps.neverAsk.saveToDisk","application/octet-stream,application/msexcel"); 

DesiredCapabilities capFF = DesiredCapabilities.firefox(); 
capFF.setCapability(FirefoxDriver.PROFILE, profileAutoUser); 


driver = new FirefoxDriver(profileAutoUser); 

請注意,這僅適用於FF。

+0

如何處理這與IE雖然? –