Javascript 上传文件-量角器

Javascript 上传文件-量角器,javascript,selenium,testing,protractor,end-to-end,Javascript,Selenium,Testing,Protractor,End To End,我使用量角器是因为有些测试需要上传文件。我的HTML看起来像: <div class="panel-footer"> <ul class="list-unstyled"> <!-- ngRepeat: file in imagesToUpload --> </ul> <button class="btn btn-sm btn-success pull-right ng-binding ng-hi

我使用量角器是因为有些测试需要上传文件。我的HTML看起来像:

<div class="panel-footer">
    <ul class="list-unstyled">
      <!-- ngRepeat: file in imagesToUpload -->      
    </ul>
    <button class="btn btn-sm btn-success pull-right ng-binding ng-hide" ng-show="imagesToUpload.length" ng-click="uploadImages()">Nahrát na server</button>
    <button class="btn btn-sm btn-primary ng-binding" ng-file-select="onImageSelect($files)" data-multiple="true" style="overflow: hidden;">Vybrat soubory<input type="file" class="btn btn-sm btn-primary ng-binding" ng-file-select="onImageSelect($files)" data-multiple="true" multiple="multiple" __wrapper_for_parent_="true" style="width: 1px; height: 1px; opacity: 0; position: absolute; padding: 0px; margin: 0px; overflow: hidden;"></button>
  </div>

Nahrát na服务器 维布拉特苏博里酒店
输入HTML:

<input type="file" class="btn btn-sm btn-primary ng-binding" ng-file-select="onImageSelect($files)" data-multiple="true" multiple="multiple" __wrapper_for_parent_="true" style="width: 1px; height: 1px; opacity: 0; position: absolute; padding: 0px; margin: 0px; overflow: hidden;">

我在量角器中搜索了很多关于这个问题的信息。人们的基本建议是复制/粘贴要输入的文件路径,然后单击“上载”

在我的例子中,有一个问题,因为输入在这里,但它存储一些对象,而不是路径

如果我手动选择文件,它将存储在HTML中,如:

<li ng-repeat="file in imagesToUpload" class="ng-binding ng-scope">
        FileName.png <span title="remove" class="btn btn-flat glyphicon glyphicon-remove" ng-click="imagesToUpload.splice($index, 1)"></span>
      </li>
  • FileName.png
  • 也许这真的很愚蠢,但我在想,如果没有其他的方法怎么做呢?可能创建对象并将其发送到那里或其他地方


    欢迎提供任何建议。

    通过量角器/selenium上传文件的最常见和最现实的方法是向
    文件
    输入发送键,并避免打开无法控制的上传文件对话框:

    var uploadInput = element(by.css("input[type=file]"));
    uploadInput.sendKeys("path/to/file");
    

    嗨,alecxe,你知道你的建议总是很有帮助的,没有吸引力,因为这一次我无法前进。无论我如何尝试将路径发送到那里,我都会收到一个错误:未知错误:未知错误:路径不是绝对路径:../../../../../img/upload。png@Andurit谢谢,这意味着您需要设置一个绝对路径:)这是我设置路径的方式:uploadInput.sendKeys('../../../../../../img/upload.png');这不是绝对的吗?@Andurit不是,这是相对的。从Mac上开始,例如
    /Users/user/Downloads/upload.png
    。我不知道你是怎么做到的,但你真是太棒了!