Protractor 如何通过量角器上传csv文件

Protractor 如何通过量角器上传csv文件,protractor,Protractor,我正在自动化一个场景,需要上传一个CSV文件,并在上传文件后验证结果 申请代码如下: var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv"; var path = require('path'); var assetsTestData = require(path.resolve(assetBulkInUploadJson)); var cho

我正在自动化一个场景,需要上传一个CSV文件,并在上传文件后验证结果

申请代码如下:

var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv";

var path = require('path');
var assetsTestData = require(path.resolve(assetBulkInUploadJson));
var chooseFileButton= element(by.css("input[file-model='fileData']"));

//send the file address to choose file
chooseFileButton.sendKeys(assetsTestData);
我在上传CSV文件时遇到了以下错误

  E/launcher - Error: /Users/Sarada/IdeaProjects/scm-ui-automation/src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv:1 (function (exports, require, module, __filename, __dirname) { //data in csv file displayed

SyntaxError: Unexpected identifier
at new Script (vm.js:79:7)
at createScript (vm.js:251:10)
at Object.runInThisContext (vm.js:303:10)
at Module._compile (internal/modules/cjs/loader.js:657:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
如果我将绝对路径直接传递给sendKeys(),它工作正常

chooseFileButton.sendKeys("/Users/Sarada/IdeaProjects/scm-ui-automation/src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv");
如何解决这个问题,如何将相对路径转换为绝对路径并作为变量参数发送?请帮帮我。

试试这个

var assetsTestData = (file) => (path.resolve(__dirname, `${file}`));
然后

chooseFileButton.sendKeys(AssetTestData(assetBulkInUploadJson);
试试这个

var assetsTestData = (file) => (path.resolve(__dirname, `${file}`));
然后


chooseFileButton.sendKeys(AssetTestData(assetBulkInUploadJson);

您不需要
要求文件,只需指定路径并将其发送到input

var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv";

var path = require('path');
var assetsTestData = path.resolve(__dirname, assetBulkInUploadJson);
var chooseFileButton= element(by.css("input[file-model='fileData']"));

//send the file address to choose file
chooseFileButton.sendKeys(assetsTestData);

您不需要
要求
您的文件,只需指定路径并将其发送到输入

var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv";

var path = require('path');
var assetsTestData = path.resolve(__dirname, assetBulkInUploadJson);
var chooseFileButton= element(by.css("input[file-model='fileData']"));

//send the file address to choose file
chooseFileButton.sendKeys(assetsTestData);

解决这个问题的两种方法

解决方案1:

var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv";

var path = require('path');
var assetsTestData = path.resolve(assetBulkInUploadJson);
var chooseFileButton= element(by.css("input[file-model='fileData']"));

//send the file address to choose file
chooseFileButton.sendKeys(assetsTestData);
var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv";

var path = require('path');
var assetsTestData = (file) => (path.resolve(`${file}`));
var chooseFileButton= element(by.css("input[file-model='fileData']"));

//send the file address to choose file
chooseFileButton.sendKeys(assetsTestData(assetBulkInUploadJson));
解决方案2:

var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv";

var path = require('path');
var assetsTestData = path.resolve(assetBulkInUploadJson);
var chooseFileButton= element(by.css("input[file-model='fileData']"));

//send the file address to choose file
chooseFileButton.sendKeys(assetsTestData);
var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv";

var path = require('path');
var assetsTestData = (file) => (path.resolve(`${file}`));
var chooseFileButton= element(by.css("input[file-model='fileData']"));

//send the file address to choose file
chooseFileButton.sendKeys(assetsTestData(assetBulkInUploadJson));

感谢@Sergey和@Joaquin两种解决问题的方法

解决方案1:

var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv";

var path = require('path');
var assetsTestData = path.resolve(assetBulkInUploadJson);
var chooseFileButton= element(by.css("input[file-model='fileData']"));

//send the file address to choose file
chooseFileButton.sendKeys(assetsTestData);
var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv";

var path = require('path');
var assetsTestData = (file) => (path.resolve(`${file}`));
var chooseFileButton= element(by.css("input[file-model='fileData']"));

//send the file address to choose file
chooseFileButton.sendKeys(assetsTestData(assetBulkInUploadJson));
解决方案2:

var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv";

var path = require('path');
var assetsTestData = path.resolve(assetBulkInUploadJson);
var chooseFileButton= element(by.css("input[file-model='fileData']"));

//send the file address to choose file
chooseFileButton.sendKeys(assetsTestData);
var assetBulkInUploadJson = "./src/resources/scm-test-data/evin/asserts/create-assets-bulk-upload.csv";

var path = require('path');
var assetsTestData = (file) => (path.resolve(`${file}`));
var chooseFileButton= element(by.css("input[file-model='fileData']"));

//send the file address to choose file
chooseFileButton.sendKeys(assetsTestData(assetBulkInUploadJson));

谢谢@Sergey和@Joaquin

你好,Joaquin,谢谢你的回复。
assetsTestData=(file)=>(path.resolve(\uu dirname,
${file}
)
这行代码给出了当前目录名,但在我的代码中我需要project home目录名,是否有任何可能的方法获取它?那么上面的代码会起作用谢谢,我得到了解决方案,如果我删除了它起作用的“u dirname”参数。嗨,Joaquin,谢谢你的回复。
AssetTestData=(file)=>(path.resolve(uu dirname,
${file}
);
这行代码给出了当前目录名,但在我的代码中,我需要project home目录名,有没有任何可能的方法可以得到它?那么上面的代码会起作用谢谢,我得到了解决方案,如果我删除了'\u dirname'参数,它就起作用了。谢谢,如果我直接使用'\u dirname'将调用的函数路径添加到实际的json路径中,如果我删除了'\uuu dirname',它成功了。谢谢,如果我直接使用'\uu dirname',将调用的函数路径添加到实际的json路径,如果我删除'\uu dirname',它成功了。