While retrieving data from excel sheet its throwing Array out of bound exception | Selenium Forum
A
Avijeet Posted on 13/09/2019

public class parameterization {

                @Test(dataProvider="getData")           

                public void demo(){

                                                     

                }    

                                @DataProvider()

                                public Object[][]getData(){                             

                                String sheetName="CDM";

                                 //Total rows in the sheet

                                Xls_Reader xls=new Xls_Reader("C://Selenium//Test_Data.xlsx");         

                                 int rows=xls.getRowCount(sheetName);

                                   System.out.println(rows);                 

                                //Total column in the sheet

                                int cols=xls.getColumnCount(sheetName);

                                System.out.println(cols)

                                Object[][] data=new Object[rows-1][cols];

                                 int count=0;       

                                for(int i=2;i<=rows;i++){               

                                                for(int j=0;j<=cols;j++){

                                                              data[count][j]= xls.getCellData(sheetName, j, i);                                               

                                                                System.out.println(data[count][j]);

                                                }

                                                 count++;             

              }                     

                          return data;       

 

                                }                    

                                }

 

 

I have written the above code to retrive data from excel sheet. I have refer the video and couldnt found the error. Could you please advise me.

Its returning only 1 row data.

 

Below attached the error log.

[TestNG] Running:

  C:\Users\UX015804\AppData\Local\Temp\testng-eclipse-1720536426\testng-customsuite.xml

 

6

2

test1.0.8

tesco test test3

SKIPPED: demo

java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 2

       at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:163)

       at org.testng.internal.Parameters.handleParameters(Parameters.java:430)

       at org.testng.internal.Invoker.handleParameters(Invoker.java:1276)

       at org.testng.internal.Invoker.createParameters(Invoker.java:991)

       at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1081)

       at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)

       at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)

       at org.testng.TestRunner.privateRun(TestRunner.java:782)

       at org.testng.TestRunner.run(TestRunner.java:632)

       at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)

       at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)

       at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)

       at org.testng.SuiteRunner.run(SuiteRunner.java:268)

       at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)

       at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)

       at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)

       at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)

       at org.testng.TestNG.run(TestNG.java:1064)

       at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:113)

       at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206)

       at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177)

Caused by: java.lang.ArrayIndexOutOfBoundsException: 2

       at testcase.parameterization.getData(parameterization.java:46)

       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

       at java.lang.reflect.Method.invoke(Unknown Source)

       at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)

       at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:137)

       ... 20 more

 

 

===============================================

    Default test

    Tests run: 1, Failures: 0, Skips: 1

===============================================

 

 

===============================================

Default suite

Total tests run: 1, Failures: 0, Skips: 1

===============================================

 

[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@244038d0: 18 ms

[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@2401f4c3: 93 ms

[TestNG] Time taken by org.testng.reporters.jq.Main@762efe5d: 96 ms

[TestNG] Time taken by org.testng.reporters.EmailableReporter2@200a570f: 12 ms

[TestNG] Time taken by org.testng.reporters.XMLReporter@69222c14: 10 ms

[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 21 ms

 

 


A
Avijeet Replied on 13/09/2019

I hav resolved the query.Could you please close this query

Error because of Column Count value. 2 column is available in excel and my code was retriving 3 column.