首页 > 解决方案 > JavaScript:读取 excel 单元格值

问题描述

我正在从事一项自动化测试的任务,我需要访问一个 excel 文件来获取输入数据。

我需要有关如何使用 Javascript 从本地 excel 文件访问特定单元格值的帮助。

我的本地存储中有一个 excel 文件,其单元格“B2”中有“After Life”一词。在此处输入图像描述

目前,我做了两个功能:一个用于导航到所需的页面,另一个用于搜索。但是,由于我不知道如何从本地 excel 文件中导入数据,我为搜索功能手动键入了字符串参数“After Life”。

在此处输入图像描述

标签: javascriptexceltestingautomated-tests

解决方案


我建议将文件导入为 .csv 并创建一个 ReadStream 以csv-parser在您的 E2E-Tes​​t 中使用和解析它。

const csv = require('csv-parser')
const fs = require('fs')
const results = [];

const findByKey = (key) => {
    return new Promise ((resolve, reject) => {
    
        fs.createReadStream('data.csv')
           .pipe(csv())
           .on('data', (data) => results.push(data))
           .on('end', () => {
                const searchString = results.forEach((item) => {
                    return item[key];
                });
                if (item.key && item.key.length > 0) {
                    resolve(item.key);
                } else {
                    reject();
                }
        });
    }) 
}

这样,如果您使用async/await.

 export async function search (searchText) {
     const searchString = await findByKey(searchText);
     cy.get('.gLFyf').type(searchText + '{enter}');
 }

然后像这样使用它:

it('should search After Life', () => {
    search('Search String 2');
});

推荐阅读