Not able to read data from XLS | Selenium Forum
M
Posted on 23/11/2015
I just tried to read a data from xls
@Test(dataProvider = "getData")
public void Inplay(String event, String market, String button) {



}

@DataProvider
public Object[][] getData(){
Xls_Reader xls = new Xls_Reader("C:\\Users\\rohann\\Desktop\\Bets.xlsx");

int rows = xls.getRowCount("bet")-1;
int cols = xls.getColumnCount("bet");

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

for(int rNum=1; rNum<=rows; rNum++){
for(int cNum =0; cNum<cols; cNum++){
data[rNum-2][cNum]= xls.getCellData("Bets", cNum, rNum);
}

}
return data;

}

}


Getting below message without any error. Kindly look into this and please let me know
SKIPPED: Inplay
java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: -1
at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:162)
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:992)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1082)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:124)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
at org.testng.TestRunner.privateRun(TestRunner.java:773)
at org.testng.TestRunner.run(TestRunner.java:623)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:357)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310)
at org.testng.SuiteRunner.run(SuiteRunner.java:259)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1185)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1110)
at org.testng.TestNG.run(TestNG.java:1018)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at Inplay.getData(Inplay.java:49)
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:85)
at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:136)
... 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.EmailableReporter2@2db0f6b2: 10 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@6d86b085: 63 ms
[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@3339ad8e: 6 ms
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@43556938: 41 ms
[TestNG] Time taken by org.testng.reporters.XMLReporter@4c3e4790: 6 ms
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 8 ms

M
Replied on 23/11/2015

[quote:22mfr7ho]java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: -1[/quote:22mfr7ho]

Thrown to indicate that an array has been accessed with an illegal index. The index is either negative or greater than or equal to the size of the array.
So for example:

int[] array = new int[5];
int boom = array[-1]; // Throws the exception

As for how to avoid it... um, don't do that. Be careful with your array indexes.