2015-04-07 138 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-”和“点击”的空间。