java - 使用 Jenkins 运行时无法识别 ole 流错误
问题描述
尝试从 Jenkins 运行我的 selenium 脚本时,我无法识别 ole 流错误,但是在 eclipse 中从本地运行它时它工作正常。我正在尝试使用 JXL 连接到此脚本中的 Excel 表
Excel 已经以 97-2003 格式保存(我知道我使用的是不支持 XLSX 的 JXL)并且使用 eclipse 在本地机器上工作正常,但是从 Jenkins 运行它时出现错误。我检查了从机,发现 Office 2016 安装在从机以及我的本地机器中
我应该能够毫无问题地连接到 xls 文件,因为它在我的本地机器上工作正常。请建议
用于连接Excel的代码:
import java.io.IOException;
import java.util.Hashtable;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
static Sheet wrksheet;
static Workbook wrkbook =null;
static Hashtable dict= new Hashtable();
private static int iDataSheetRow;
//Create a Constructor
public static void init(String ExcelSheetPath) throws BiffException, IOException
{
//Initialize
wrkbook = Workbook.getWorkbook(new File(ExcelSheetPath));
wrksheet = wrkbook.getSheet(0);
//setiDataSheetRow(0);
}
错误日志:
jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:221)
at jxl.Workbook.getWorkbook(Workbook.java:198)
at utilities.ExcelSheetDriver.init(ExcelSheetDriver.java:21)
at smokeTestRun.TC_BarclaysYS.beforeMethod(TC_BarclaysYS.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124
解决方案
推荐阅读
- roc - 计算 ROC 和 AUC 值:
- python - 在 django 中保存多个隐藏字段
- spring-boot - cucumber.plugin 设置正在生成空报告
- vue.js - Vue:登录/注销后标题不会更新,但 localStorage 已更改
- javascript - 令牌 + 电子邮件授权的请求标头
- php - 日历使用限制超出但不超过任何配额
- python - 提高性能 cv2.calibrateCamera
- ansible - 将厨师食谱部分转换为 ansible
- netflix-eureka - 使用 EurekaHttpClient 手动注册服务时获取 http 代码状态 400
- java - Java combining ArrayList contains() and ArrayList remove()