You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cypress获取Excel文件工作表名返回空数组问题求助

问题原因

返回空数组的核心错误是SheetJS(xlsx)库API使用不当:
workbook.SheetNames本身就是存储所有工作表名称的一维字符串数组,而xlsx.utils.sheet_to_json()的作用是将单个工作表的单元格内容转换为JSON结构,入参必须是工作表对象(即workbook.Sheets[指定表名]格式的取值),将字符串数组传入该方法会直接返回空值。

修复方法

修改plugins/index.js中task的对应逻辑,直接返回workbook.SheetNames即可,无需调用sheet_to_json做包装:

on('task', { 
  checkExcelSheetContents(args){
    if (fs.existsSync(args.filePath)) {
      const workbook = xlsx.readFile(args.filePath);
      // 直接返回工作表名数组
      return workbook.SheetNames
    } else {
      throw new Error("File not found")
    }
  }
})
避坑提示

当前测试代码中使用相对路径定位Excel文件,Cypress执行Node端task时默认工作目录为项目根目录,手写相对路径很容易出现文件定位失败问题,建议拼接绝对路径使用:

  • 在plugins/index.js顶部引入path模块:const path = require('path')
  • 路径拼接可借助Cypress配置中的projectRoot参数,避免手动计算目录层级出错。
参考截图
  • Cypress运行时返回空数组的执行结果:
    Cypress UI result
  • 目标Excel实际存在的工作表名:
    Sheet names

内容的提问来源于stack exchange,提问作者Faith Berroya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 14:33:30