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

新手求助:如何在Protractor中读取Excel(XLSX)文件数据?

解决Protractor读取XLSX文件的报错问题

嘿,我看到你作为Protractor新手,在读取XLSX数据到Web应用时遇到了报错,别担心,这是个很常见的小问题,咱们一步步来解决它~

为什么会报错?

你直接用require('path/book1.xlsx')加载XLSX文件是行不通的,因为Node.js的require方法默认只能处理JavaScript或JSON格式的文件,XLSX是二进制格式的表格文件,需要专门的库来解析它,所以才会抛出Invalid or unexpected token的错误。

正确的解决步骤

1. 安装XLSX解析库

首先在你的项目里安装xlsx库,这是目前最常用的Node.js处理Excel文件的工具:

npm install xlsx --save-dev

2. 修改你的代码

把原来的代码替换成下面的写法,我会逐行解释:

// 引入xlsx库
const XLSX = require('xlsx');
// 读取XLSX文件(注意文件路径要和你的实际位置匹配)
const workbook = XLSX.readFile('./book1.xlsx');
// 获取第一个工作表(假设你的数据在第一个sheet里)
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
// 把工作表数据转换成JSON格式,方便直接调用
const testData = XLSX.utils.sheet_to_json(worksheet);

// 接下来就是你原来的页面操作逻辑
const a = element(by.id("Name"));
const b = element(by.id("Description"));
a.sendKeys(testData[0].Name);
b.sendKeys(testData[0].Description);
browser.sleep(3000);

代码细节解释:

  • XLSX.readFile('./book1.xlsx'):读取本地XLSX文件,返回包含所有工作表的工作簿对象
  • workbook.SheetNames[0]:获取第一个工作表的名称,如果你的数据在其他sheet里,改成对应的索引(比如SheetNames[1])或直接写sheet名称即可
  • XLSX.utils.sheet_to_json(worksheet):把表格数据转换成JSON数组,这样你就能像原来预期的那样,用testData[0].Name访问对应单元格的数据了

额外小提示

  • 确认你的XLSX文件路径是正确的,相对路径是相对于你的Protractor测试脚本或配置文件所在的位置
  • 如果你的Excel里有合并单元格、特殊格式或空值,可能需要调整解析选项,不过一般简单的表格用上面的代码就足够啦

你之前的错误代码:

var testData1 = require('path/book1.xlsx');
var a = element(by.id("Name"));
var b = element(by.id("Description"));
a.sendKeys(testData1[0].Name);
b.sendKeys(testData1[0].Description);
browser.sleep(3000);

报错信息:

Message: Failed: Invalid or unexpected token
Stack: D:\Protractor\book1.xlsx:1 (function (exports, require, module, __filen...

内容的提问来源于stack exchange,提问作者Unmesh Ghatbandhe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:58:12