angularjs - Protractor - 如何在测试用例中使用 ng-file-upload 上传文件而不更改代码?

标签 angularjs file-upload protractor

I am using https://github.com/danialfarid/ng-file-upload for file upload. I have to test it so I wrote protractor test case but it not working.

代码

<div class="col-lg-12 up-buttons">
     <div ng-file-select="" ng-model="files" ng-model-rejected="rejFiles" class="btn btn-default" ng-multiple="false" ng-accept="'text/csv,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'"  ng-model-rejected="rejFiles" tabindex="0">Choose file</div>
</div>

测试用例

it('upload file', function(){   
  var fileToUpload = 'C:/Users/Anusha/Desktop/demo.csv';
  var absolutePath = path.resolve(fileToUpload);
  $('input[type="file"]').sendKeys(absolutePath);
  browser.sleep(1500);
})

testcase result

我可以上传文件,但它是在 rejFiles 模型而不是 files 模型中接收的,尽管文件格式是正确的。有人可以建议我如何做到这一点吗?

最佳答案

HTML

<div class="col-lg-12 up-buttons">
    <div ng-file-select="" ng-model="files" ng-model-rejected="rejFiles" class="btn btn-default" ng-multiple="false" ng-accept="'*.csv'"  ng-model-rejected="rejFiles" tabindex="0">Choose file</div>
</div>

测试用例

var path = require('path');
var fileToUpload = file_path;
var absolutePath = path.resolve(fileToUpload);
element.all(by.css('input[type="file"]')).then(function(items) {
  items[0].sendKeys(absolutePath);
});
browser.sleep(500);

关于angularjs - Protractor - 如何在测试用例中使用 ng-file-upload 上传文件而不更改代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29384676/

相关文章:

angularjs - 在AngularJS中格式化数字的最合适的方法

javascript - 用户界面路由器 : Access route directly using the url

javascript - AngularJS 使用routeParams 滚动到ID

javascript - ng-show 内容在页面加载期间闪烁,尽管它不是真实的并且 ng-cloak 不适用于 FF

file-upload - 如何在嵌入式Jetty中实现FileUpload?

ssl - upload.yaws 因 erlang R16B-03.7.el7 和 yaws 1.98-2.el7 而失败

android - 在 Activity 和服务之间共享数据库

javascript - 在 Protractor 循环内执行多个 it block 并消耗 IT block 中的变量

javascript - 如何在 Protractor 中顺序运行多浏览器测试?

angularjs - 在 Protractor 中参数化环境