【问题标题】:csvtojson not working inside protractor thencsvtojson 不能在量角器内工作
【发布时间】:2018-09-09 00:10:39
【问题描述】:

所以基本上我想下载一个 csv 文件然后将其转换为 json,但目前我遇到的问题是将 csv 转换为 json 的函数在量角器中不起作用,方法“converter.fromFile”打印空数组。下面是我的代码

var createUser = require('../pages/createUser.page.js');
var exportPermissions = require('../pages/exportPermissions.page.js');
var cred = require('../../local.credentials.js');
var globals = require('./../../globals.js');
var Converter = require("csvtojson").Converter;
var fs = require('fs')
var until = protractor.ExpectedConditions;
var URL = 'http://' + cred.httpAuth + '@' + cred.server + '/#/page/login';
const csvFilePath='C:/Users/Manoor khan/Downloads/System___exportedPermissions.csv';


var converter = new Converter({});
var permissions;
describe('Use case: MEP-T96 Export permissions', function () {

var createUserSelectors;
var loginPg;
var permissionsMenu;
beforeAll(function () {
    createUserSelectors = new createUser();
    permissionsMenu = new exportPermissions();
    browser.get(URL).then(function () {
        console.log('opened URL');
    });
});
it('MEP-T96 Export permissions', function (done) {
    globals.login('adminUname', 'adminPass').then(function () { console.log('Logged in as admin') });
    browser.wait(until.presenceOf(createUserSelectors.adminPage), 20000, 'admin Page taking too long to appear in the DOM');
    createUserSelectors.administrationMenu.click().then(function () { console.log('Clicked adminstration menue') });
    expect(createUserSelectors.userManagerMenu.isPresent()).toBe(true, 'Couldnt find manager user link');
    expect(permissionsMenu.systemPermissionMenu.isPresent()).toBe(true, 'couldnt find create system permission link');
    permissionsMenu.systemPermissionMenu.click().then(function () { console.log('Clicked on system permissions menu') });
    browser.wait(until.presenceOf(permissionsMenu.permissionSearchBtn), 20000, 'Permission page didnt load in the given time');
    expect(permissionsMenu.permissionSearchBtn.isPresent()).toBe(true, 'Permission search button not found');
    expect(permissionsMenu.permissionSearchBar.isPresent()).toBe(true, 'Permission search bar not found');
    expect(permissionsMenu.exportPermissionsAsCSVBtn.isPresent()).toBe(true, 'Export permission button not found');
    permissionsMenu.exportPermissionsAsCSVBtn.click().then(function () { console.log('Clicked on export permission button') });
    permissionsMenu.downloadCVSbutton.click().then(function(){
        console.log('Clicked on the download CVS button');
        }).then(function(){
        if (fs.existsSync(csvFilePath)) {
            console.log('found');
            converter.fromFile(csvFilePath,function(err,result){
                if(err){
                    console.log("An Error Has Occured");
                    console.log(err);  
                } 
               //permissions = result;
               console.log(csvFilePath);
               console.log(result);
               });
            } else {
                console.log('didnt find');
            }


    }).then(function(){

    }).then(function(){
        fs.unlink(csvFilePath, function(){
            console.log('--->done');
        });
     });

【问题讨论】:

  • 请给出运行日志?你有没有在下载的 csv 文件上对你的代码(没有量角器部分)进行快速测试,以检查它是否也可以单独工作
  • 是的,我确实在没有量角器的情况下在下载的文件上运行了测试,然后它工作正常
  • @yong 请查看我的评论

标签: json node.js csv protractor e2e-testing


【解决方案1】:
const csvFilePath='<path to csv file>'
const csv=require('csvtojson')
csv()
.fromFile(csvFilePath)
.on('json',(jsonObj)=>{
    // combine csv header row and csv line to a json object
    // jsonObj.a ==> 1 or 4
})
.on('done',(error)=>{
    console.log('end')
})

试试这个 ^

并且还要尝试你的文件路径不包含任何空格。

如果您需要承诺,请尝试

var Promise = require('bluebird');
var Converter = require('csvtojson').Converter;
Promise.promisifyAll(Converter.prototype);

var converter = new Converter();

converter.fromFile(csvFilePath)
.then(function(data){console.log(data)})

【讨论】:

  • 让我也试试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多