Не удается прочитать свойства неопределенного цикла через XLSX-файл в Cypress test

#javascript #cypress

#javascript #cypress

Вопрос:

Я пытаюсь преобразовать значения из XLSX-файла в JSON-файл в Cypress test.

Я точно скопировал код из этого блога, но когда я нажал на строку ниже:

 console.log(jsonData[index].data)
 

Я получаю это сообщение об ошибке:

Не удается прочитать свойства неопределенного (чтение ‘1’)

Вот код в моем spec.js файле:

 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] })
            }
        })
    })
})
 

И вот где определена моя parseXlsx функция:

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);
        }
      });
    }
  });
}
 

Мой cypress/fixtures/excelData.xlsx файл выглядит так:

ИМЯ ПОЛЬЗОВАТЕЛЯ ПАРОЛЬ

Имя пользователя 1 Пароль 1

Имя пользователя 2 Пароль 2

Может кто-нибудь, пожалуйста, скажите мне, как устранить эту ошибку?

Ответ №1:

Мне удалось найти решение:

 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] })
            }
        })
    })
})