2017-08-21 46 views
1

我必須測試點擊鏈接時是否下載了pdf文件。 我已經設置了一個默認文件夾,可以用硒下載它們,但我需要保存我的這些服務器而不是節點。下載文件(在節點上使用chrome)並將其保存在服務器文件系統中

chromePrefs.put("download.default_directory", "C:\\SOIF\\Temp\\downloads"); 
options.setExperimentalOption("prefs", chromePrefs); 

我試着使用:

((RemoteWebDriver) getWebDriver()).setFileDetector(new LocalFileDetector()) 

但這只是作品,如果我嘗試從與節點服務器上傳文件。

這甚至可能沒有設置服務器上的默認下載文件夾?

+0

節點也是windows? –

+0

是的一切都是windows –

+0

你可以試試''download.default_directory「,」Z:\\ shared_server_path \\ SOIF \\ Temp \\ downloads「' – DebanjanB

回答

0

您需要從服務器共享文件夾。然後使用Map驅動器字母映射所有節點,並在映射完成後映射它。您可以在所有測試中使用該路徑下載以及測試是否下載文件

Z:是最常用的一種,但您可以將其與任何其他字母驅動程序一起使用。然後只使用這些路徑。

像@DebanjanB例子中提到"Z:\\shared_server_path\\SOIF\\Temp\\downloads"

編輯-1

如果你需要爲每個測試用例的單獨下載,那麼你必須做下面的一個可能的選項。在開始之前的webdriver,生成一個UUID字符串並追加,爲您的下載文件夾

`"Z:\\shared_server_path\\SOIF\\Temp\\downloads\\fd411526-e3aa-43b1-a351-e484da4508d9"` 

創建該文件夾,並用此啓動的webdriver的下載目錄。測試完成後,您始終可以知道測試用例名稱是什麼。創建目錄

"Z:\\shared_server_path\\SOIF\\Temp\\downloads\\TestCase1"

而且文件移動到該文件夾​​。這是我能想到的可行解決方案

+0

是的,這是我嘗試的解決方案...但它並不是最佳的因爲我需要每個測試用例的特定文件夾,並且當我創建webdriver時我沒有這個信息。我不認爲你可以在不創建新的WebDriver的情況下更改能力。這就是爲什麼我試圖讓一個cl eaner解決方案 –

+0

@VasheLuca,看我的編輯 –

+0

謝謝我會嘗試,似乎可行,比重新我的webdriver邏輯更容易 –

相關問題