Java Testng:Dataprovider:错误:sun.reflect。NativeMethodAccessorImpl@2f1ea80d

Java Testng:Dataprovider:错误:sun.reflect。NativeMethodAccessorImpl@2f1ea80d,java,selenium,testng-eclipse,Java,Selenium,Testng Eclipse,我试图从excel中读取数据,它只包含一列,其中有三行 身份证 A1002 B1003 C1004 我在Testng中使用dataprovider来实现同样的功能。但是在返回2D对象数组时,我得到了sun.reflect。NativeMethodAccessorImpl@2f1ea80d错误 @DataProvider(name = "getLoginData") public Object[][] LoginData() throws Exception { Workbo

我试图从excel中读取数据,它只包含一列,其中有三行

身份证 A1002 B1003 C1004

我在Testng中使用dataprovider来实现同样的功能。但是在返回2D对象数组时,我得到了sun.reflect。NativeMethodAccessorImpl@2f1ea80d错误

 @DataProvider(name = "getLoginData")
    public Object[][] LoginData() throws Exception
 {
     Workbook workbook = null;
     ArrayList<String> values = new ArrayList<String>();

     FileInputStream ExcelFile = new FileInputStream(Path_TestData);
        ExcelWBook = new XSSFWorkbook(ExcelFile);
        ExcelWSheet = ExcelWBook.getSheet(Home.sheetname);
        int rows = ExcelWSheet.getPhysicalNumberOfRows();
        System.out.println("Rows is" +rows);
        for(int i=1; i<rows; i++)
        {
            XSSFRow row = ExcelWSheet.getRow(i);
            values.add(row.getCell(0).getStringCellValue());
        }
        System.out.println("value size is" +values.size());
        Object[][] returnValue = new Object[10][10];

        for(i=0; i<values.size();i++)
        {

            returnValue[i][0] = values.get(i);

        }
                return returnValue;

 }

@Test(dataProvider="getLoginData")
    public void LoginData(String ID)
    {

          driver.findElement(By.xpath("//*[text()='select']")).click();
      //clicking on the ID selected in dropdown         
          driver.findElement(By.xpath("//*[text()=ID]")).click();
     }
@DataProvider(name=“getloginda”)
公共对象[][]LoginData()引发异常
{
工作簿=空;
ArrayList值=新的ArrayList();
FileInputStream ExcelFile=新的FileInputStream(路径\测试数据);
ExcelWBook=新XSSF工作簿(ExcelFile);
ExcelWSheet=ExcelWBook.getSheet(Home.sheetname);
int rows=ExcelWSheet.getPhysicalNumberOfRows();
System.out.println(“行为”+行);

对于(inti=1;i尝试以下代码,我在这里和那里做了一些调整:

 @DataProvider(name = "getLoginData")
  public static Object[][] LoginData() throws Exception
  {
    XSSFWorkbook ExcelWBook = null;
    ArrayList<String> values = new ArrayList<String>();

    FileInputStream ExcelFile = new FileInputStream("C:\\Users\\kushal8\\Desktop\\K1.xlsx");
    ExcelWBook = new XSSFWorkbook(ExcelFile);
    XSSFSheet ExcelWSheet = ExcelWBook.getSheet("Sheet1");
    int rows = ExcelWSheet.getPhysicalNumberOfRows();
    System.out.println("Rows is" +rows);
    for(int i=1; i<rows; i++)
    {
        XSSFRow row = ExcelWSheet.getRow(i);
        values.add(row.getCell(0).getStringCellValue());
    }
    System.out.println("value size is" +values.size());
    Object[][] returnValue = new Object[15][15];

    for(int i=0; i<values.size();i++)
    {

        returnValue[i][0] = values.get(i);

        //System.out.println(returnValue[i][0]);

    }
    return returnValue;

}
@DataProvider(name=“getloginda”)
公共静态对象[][]LoginData()引发异常
{
XSSF工作簿ExcelWBook=null;
ArrayList值=新的ArrayList();
FileInputStream ExcelFile=newfileinputstream(“C:\\Users\\kushal8\\Desktop\\K1.xlsx”);
ExcelWBook=新XSSF工作簿(ExcelFile);
XSSFSheet ExcelWSheet=ExcelWBook.getSheet(“Sheet1”);
int rows=ExcelWSheet.getPhysicalNumberOfRows();
System.out.println(“行为”+行);

对于(int i=1;i您使用的JAR是Apache POI还是Jetcel?@Dev:xssfoolk(ExcelFile)表示POI@kushal。您可以更新您使用的是哪种类型的文件(.xls)还是(.xlsx)?感谢SXSSF处理(.xlsx),而hssf处理的是(.xls)。@kushal:感谢您调查了这个问题。我尝试了下面的代码,但仍然收到了相同的错误。