如何通过 Protractor 上传 csv 文件
How to upload csv file through 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 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(assetsTestData(assetBulkInUploadJson);
您不需要require
您的文件,只需指定路径并将其发送到输入
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(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
我正在自动化一个场景,需要上传一个 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(assetsTestData(assetBulkInUploadJson);
您不需要require
您的文件,只需指定路径并将其发送到输入
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(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