如何使用 Protractor 将文件上传到 ng-file-upload 元素

How to upload file using Protractor to the ng-file-upload element

HTML如下:
<input type="file" style="display: none" ng-file-select="" ng-file-change="upload($files)" ng-multiple="multiple" accept=".jpg,.png">

我需要将文件上传到使用 ng-file-upload 使用量角器上传图像文件的元素:

var uploadFile = element(by.css('input[type="file"]'));
uploadFile.sendKeys('C:\Temp\test.png');
uploadFile.evaluate("openMetadataDialog({file:imgFile})");

但是上面的方法不起作用。我无法理解如何上传文件! 根据我的理解,一旦我将键发送到输入元素,上传功能就应该被调用!然而,这似乎并没有发生!

此致,
萨克什

似乎 ng-file-upload 对 .sendKeys(...) 没有反应,它的文件更改没有被调用。您可以使用标准 onchange 事件来调用一些自定义上传逻辑:

<input type="file" 
       style="display: none"     
       onchange="angular.element(this).scope().upload(this)" 
       ng-file-select 
       ng-multiple="multiple" 
       accept=".jpg,.png">

this 指向具有 属性 files 的输入元素。