使用Protractor在Firefox上上传文件

时间:2015-12-17 21:19:32

标签: javascript angularjs automated-tests protractor jasmine2.0

之前已经有了一些问题的答案,我已经尝试了所有这些,但它只是没有点击我。

我在我的量角器页面对象中包含我的文件上传功能以及它应该正在处理的html。

你能帮我找出正确的方法来表达这一点,以便在Firefox上传吗?这在Chrome中运行良好。我已经做了很多,我甚至不知道我在看什么。

我的测试功能:

function uploadAFile() {
  var path = require('path');
  var fileToUpload = '/documents/approved.png';
  var absolutePath = path.resolve(__dirname, fileToUpload);
  // Find the file input element
  var fileElem = element(by.css('input[type="file"]'));
  var unhideFileInputs = function () {
    var makeInputVisible = function () {
      fileElem.removeClass('ng-hide');
    };
  };    
  // File Upload functions
  browser.driver.executeScript(unhideFileInputs);
  fileElem.sendKeys(absolutePath);
  //element(by.css('.file-upload-mask')).click();   
}

我的HTML

<form action="https://www.website.com/datadatadata.php" class="ng-pristine ng-invalid 
ng-invalid-required" data-ng-show="showReceipt()"enctype="multipart/form-data" 
id="receiptForm" method="post" name="receiptForm" target="upload-target">
  <div class="form-group no-margin">
    <label class="control-label ng-binding">
      Upload a receipt!
      <span class="ng-binding ng-hide" data-ng-show="!requireReceipt()">(optional)</span>
    </label>
    <div class="input-group">
      <label class="file-upload-mask">
        <input class="ng-pristine ng-valid" data-ng-model="fUpload" id="fUpload" name="fUpload" type="file"> 
        <span class="btn-group" data-ng-show="selectedFileName==''">
          <span class="btn btn-success"><i class="fa fa-paperclip"></i></span>
          <span class="btn btn-default ng-binding">Click here to upload your receipt</span>
        </span>
      </label> 
      <span class="btn-group ng-hide" data-ng-show="selectedFileName!=''">
        <span class="btn btn-danger" data-ng-click="clearfUpload()"><i class="fa fa-times"></i></span> 
        <span class="btn btn-default ng-binding"></span>
      </span>
    </div>
    <input name="c" type="hidden" value="1234567"> 
    <input name="objName" type="hidden" value="submission1"> 
    <input name="id" type="hidden" value=""> 
    <input name="fieldName" type="hidden" value="receipt1">
  </div>
  <input class="hide ng-pristine ng-invalid ng-invalid-required" data-ng-model="selectedFileName" 
  data-ng-required="requireReceipt()" required="required" type="text">
</form>

0 个答案:

没有答案