2015-04-07 136 views
1

我想上傳一個文件作爲自動測試,使用下面的代碼,它正確地選擇了文件&點擊上傳按鈕,然而在單擊上傳按鈕後沒有任何反應,我相信它沒有觸發頁面上的JavaScript:使用Angular js上傳文件 - 量角器e2e測試

var fileUpload = './testFile.txt', 
absolutePath = path.resolve('./testFile.txt', fileUpload); 
$('input[type="file"]').sendKeys(absolutePath); 

element(by.model('documentFile')); 

element(by.css('button[ng-click="uploadSelectedFiles()"]')).click(); 

是否有另一種方法呢?

編輯:我已經成功地做到這一點,謝謝誰幫我,這裏是我的代碼:

var fileUpload = './testFile.jpg', 
      absolutePath = path.resolve('/home/xxx/workspace/xxx/xxx/xxx/xxxxx/test/x/x/x/x/filesToUpload', fileUpload); 

     var uploadInput = $('input[type="file"]'); 
     uploadInput.sendKeys(absolutePath); 
     uploadInput.submit(); 
     element(by.css('button[ng-click="uploadSelectedFiles()"]')).click(); 
+0

你能提供html代碼嗎? –

+0

用於chooseFile的HTML: HTML爲uploadButton:

回答

2

而不是點擊「上傳」按鈕,發送鍵將輸入設置路徑和通過點擊按鈕Submit提交表單:

var uploadInput = $('input[type="file"]'); 

uploadInput.sendKeys(absolutePath); 

var submitButton = element(by.xpath("//input[.='Submit']")); 
submitButton.click(); 
+0

這是正確的答案,不知道爲什麼它被downvoted。 – Aaron

+0

它仍然沒有上傳文件,選擇它正確,但沒有提交表單,我甚至嘗試把一個browser.pause(); &手動提交文件,仍然沒有任何反應。 –

+0

所以你不能手動執行這樣的動作呢?在這種情況下,它在應用程序本身存在問題 –

0

看似與「NG-」和「點擊」的空間。