首页 > 解决方案 > 使用 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

标签: javaselenium-webdriverjenkins-plugins

解决方案


推荐阅读