2015-09-04 38 views
2

我嘗試測試一個角度應用程序,只能通過從操作系統瀏覽器拖放文件來完成添加數據。我知道文件拖放不能直接由webdriver測試,因爲瀏覽器不是瀏覽器的一部分。量角器:從資源管理器中管理丟棄文件的最佳方法是什麼?

無論如何,我需要一種方法來添加一些數據到我的應用程序來測試它。我想到了不同的方法。 第一個是直接調用我的後端REST API來添加數據。我通過關注這篇博文(http://squirrel.pl/blog/2014/01/15/direct-server-http-calls-in-protractor/)嘗試了這種方式,我可以將數據發送到服務器。但是,在我發送數據到服務器之前,我的前端應用程序正在進行數據檢查和數據轉換,並且通過這種方式我不能'使用它們。這些檢查和轉換已經在單元測試中進行測試,但是在我的測試中重寫這些以管理我的數據文件有點令人沮喪...

所以,我認爲如果我可以通過調用控制器函數直接使用我的驗證文件來處理掉落的文件。通過這種方式,我只跳過拖放部分,但我使用e2e測試了拖放後所做的所有處理。這將是非常好的,但我不知道如何做到這一點......我甚至不知道是否有可能做這樣的事情...

任何意見將是偉大的:)

回答

0

如果你拖放文件,或者直接傳遞文件,真的很重要嗎?兩者的驗證應該相同?實際上,你可以上傳與量角器文件很容易地:

var path = require('path'); 

var uploadFile = element(by.css('input[type="file"]')); 
var jpgAbsolutePath = path.resolve(__dirname, '../td/image.jpg'); 
uploadFile.sendKeys(jpgAbsolutePath); 
+0

是的,但我們並沒有在我們的應用程序:) – Mathilde

+1

那麼任何文件輸入,你應該能夠調用控制器功能與JS:'瀏覽器.driver.executeScript('alert('某種控制器調用')');' – cvakiitho

+1

我不知道這個語法。謝謝。不幸的是,我無法測試它,因爲我不再參與這個項目。 – Mathilde

相關問題