无法在Cypress测试中通过XLSX文件读取未定义循环的属性



我正试图在Cypress测试中将XLSX文件中的值转换为JSON文件。

我已经从这个博客中准确地复制了代码,但当我点击下面的行时:

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

有人能告诉我如何解决这个错误吗?

我设法找到了一个解决方案:

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

最新更新