1

I'm trying to use a module (source) in protractor, in a angular 9 app but i'm not able to and get the following error : Error: Error: Cannot find module './drop-file.js'

The error say that it doesn't find the module but the module is correcly called as you can see bellow.

my structure :

drop-file.js
test.po.ts

test.po.ts :

const dropFile = require('./drop-file.js');
export class ReviewPo {
...
  public uploadFiles() {
    ...
          dropFile(dropElement, './image.png');
    ...
  }
}


drop-file.js :

"use strict";

var fs = require('fs');

var path = require('path');

var JS_BIND_INPUT = function JS_BIND_INPUT(target) {
  var input = document.createElement('input');
  input.type = 'file';
  input.style.display = 'none';
  input.addEventListener('change', function () {
    target.scrollIntoView(true);
    var rect = target.getBoundingClientRect(),
      x = rect.left + (rect.width >> 1),
      y = rect.top + (rect.height >> 1),
      data = {
        files: input.files
      };
    ['dragenter', 'dragover', 'drop'].forEach(function (name) {
      var event = document.createEvent('MouseEvent');
      event.initMouseEvent(name, !0, !0, window, 0, 0, 0, x, y, !1, !1, !1, !1, 0, null);
      event.dataTransfer = data;
      target.dispatchEvent(event);
    });
    document.body.removeChild(input);
  }, false);
  document.body.appendChild(input);
  return input;
};


module.exports = function (dropArea, filePath) {
  // get the full path
  filePath = path.resolve(filePath); // assert the file is present

  fs.accessSync(filePath, fs.F_OK); // resolve the drop area

  return dropArea.getWebElement().then(function (element) {
    // bind a new input to the drop area
    browser.executeScript(JS_BIND_INPUT, element).then(function (input) {
      // upload the file to the new input
      input.sendKeys(filePath);
    });
  });
};

1 Answer 1

1

In tsconfig.json, add

{
  ...

  "allowJs": true,

  ...
}

Now in test.po.ts

const dropFile = require('./drop-file');

Source: How to import js-modules into TypeScript file?

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.