請提出一個想法,有以下幾點實現下載文件存放位置和操作使用硒的webdriver與JAVA
1.how來處理在IE的下載彈出硒的webdriver與JAVA?
2.如何使用JAVA在不同位置存儲該xml文件?
注意:我們將通過輸入的「N」號和每個輸入有一個XML文件,要求所有的XML文件下載,並在不同的位置保存
請提出一個想法,有以下幾點實現下載文件存放位置和操作使用硒的webdriver與JAVA
1.how來處理在IE的下載彈出硒的webdriver與JAVA?
2.如何使用JAVA在不同位置存儲該xml文件?
注意:我們將通過輸入的「N」號和每個輸入有一個XML文件,要求所有的XML文件下載,並在不同的位置保存
我會建議您不要使用硒自動文件下載。這是你不想墮落的陷阱。文件下載在不同的瀏覽器中工作方式不同人們會推薦使用AutoIT,但它只適用於Windows,所以不能進行跨平臺測試。由於您使用Java綁定,因此您可以使用Robot類將鼠標指針移動到窗口上的某個位置併發送本地點擊。根據我的經驗,這個解決方案非常薄。你不知道你必須點擊的確切位置,用Robot你會盲目地點擊事物。爲了補充這一點,當你在使用硒網格的遠程機器上運行測試時,事情變得更加困難。
那麼你如何下載文件?只需獲取底層鏈接即可下載DOM中可用的文件併發出GET請求。如果要驗證文件,請下載內容。如果您不想驗證內容,只需迴應代碼即可。 Here是一個神奇的博客,用Java示例說明如何使用http請求在後臺下載文件,並詳細解釋爲什麼使用硒下載文件是一個壞主意。
低於設定在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。
如何處理這與IE雖然? –
請看看我在這個趨勢中的答案。 http://stackoverflow.com/questions/21217087/how-to-make-browser-closed-after-completing-download/21241682#21241682 – Major