Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

259
Views
Cannot read properties of undefined looping through XLSX file in Cypress test

I am trying to convert values from an XLSX file into a JSON file in a Cypress test.

I have copied code form this blog exactly, but when I hit the below line:

console.log(jsonData[index].data)

I get this error message:

Cannot read properties of undefined (reading '1')

Here is the code in my spec.js file:

describe('convert data to Json', () => {
    it('read data from xcel', () => {
        cy.parseXlsx('cypress/fixtures/excelData.xlsx').then((jsonData) => {
            const rowLength = Cypress.$(jsonData[0].data).length
            for (let index = 0; index < rowLength; index++) {
                var jsonData = jsonData[index].data
                console.log(jsonData[index].data)
                cy.writeFile("cypress/fixtures/xlsxData.json", { username: jsonData[0][0], password: jsonData[0][1] })
            }
        })
    })
})

And here is where my parseXlsx function is defined:

Plguins/index.js:

const xlsx = require('node-xlsx').default;
const fs = require('fs'); // for file
const path = require('path'); // for file path

module.exports = (on, config) => {
  on('task', {
    parseXlsx({ filePath }) {
      return new Promise((resolve, reject) => {
        try {
          const jsonData = xlsx.parse(fs.readFileSync(filePath));
          resolve(jsonData);
        } catch (e) {
          reject(e);
        }
      });
    }
  });
}

My cypress/fixtures/excelData.xlsx file looks like this:

USERNAME PASSWORD

Username1 Password1

Username2 Password2

Can someone please tell me how to resolve this error?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

I managed to find a solution:

describe('convert data to Json', () => {
    it('read data from xcel', () => {
        cy.parseXlsx('cypress/fixtures/excelData.xlsx').then((jsonData) => {
            const rowLength = Cypress.$(jsonData[0].data).length

            for (let i = 0; i < rowLength; i++) {
                cy.log('Username: ' + jsonData[0].data[i][0]);
                cy.log('Password: ' + jsonData[0].data[i][1]);
                cy.writeFile("cypress/fixtures/xlsxData.json", { usernameValue: jsonData[0].data[i][0], passwordValue: jsonData[0].data[i][1] })
            }
        })
    })
})  
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!