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>
4

0 に答える 0