Java 尝试从excel for Selenium webdriver读取数据时出现ArrayIndexOutOfBoundsException异常
我正在尝试读取一个excel文件,其中包含用户名和密码列表。 我得到“java.lang.RuntimeException:java.lang.ArrayIndexOutOfBoundsException:2” 我的Excel是这样的 用户名-密码 U1 P1 U2-P2 U3 P3 U4 P4 也就是说,它有2列5行。我不想计算第一行,所以我已经给出了对象数据[][]=newobject[rows-1][cols] 请协助解决问题。谢谢Java 尝试从excel for Selenium webdriver读取数据时出现ArrayIndexOutOfBoundsException异常,java,selenium,Java,Selenium,我正在尝试读取一个excel文件,其中包含用户名和密码列表。 我得到“java.lang.RuntimeException:java.lang.ArrayIndexOutOfBoundsException:2” 我的Excel是这样的 用户名-密码 U1 P1 U2-P2 U3 P3 U4 P4 也就是说,它有2列5行。我不想计算第一行,所以我已经给出了对象数据[][]=newobject[rows-1][cols] 请协助解决问题。谢谢 package com; import org.tes
package com;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class LoginTest {
@Test(dataProvider="getData")
public void doLogin(String userName, String password){
}
@DataProvider
public Object[][] getData(){
Xls_Reader xls = new Xls_Reader("E:\\Pessoal\\QTPSelenium\\Excel\\Login.xlsx");
int rows = xls.getRowCount("Login");
System.out.println("Row Count---"+rows);
int cols = xls.getColumnCount("Login");
System.out.println("Column Count---"+cols);
Object data[][] = new Object[rows-1][cols];
for(int rNum=2;rNum<=rows;rNum++){
for(int cNum=0;cNum<=cols;cNum++){
System.out.println(xls.getCellData("Login", cNum, rNum));
//ERROR IN THIS LINE
data[rNum][cNum] = xls.getCellData("Login", cNum, rNum);
}
}
return data;
}
}
试试这个
for(int rNum=1;rNum<rows;rNum++){
for(int cNum=0;cNum<cols;cNum++){
System.out.println(xls.getCellData("Login", rNum, cNum));
data[rNum-1][cNum] = xls.getCellData("Login", rNum, cNum);
}
}
for(int-rNum=1;rNum“for(int-cNum=0;cNum)行和列的值是什么?您是否也可以共享excel?似乎您正在对行执行基于0的索引,对列执行基于1的索引新对象[rows-1][cols];
因此,您可能需要使用数据[rNum-1][cNum]
分配值。嗨@Sachin。不,我不是。我有5行2列。您使用相同的索引rNum
访问电子表格和数组数据。您需要使用数据[rNum-1][cNum]
。如果您使用调试器,直到抛出异常为止,您将看到数据[0][]
始终是null@Sachin.它仍然不起作用。它仍然抛出相同的异常。我使用了此数据[rNum-1][cNum]仍然不起作用。我还尝试了数据[rNum-2][cNum]=xls.getCellData(“登录”,cNum,rNum);仍然不工作。您可以从控制台中告诉行和列的值是什么吗?意思是,System.out.println(“行计数-”+行);System.out.println(“列计数-”+列);还可以检查xls.getCellData(“Login”,cNum,rNum)的参数。它应该是xls.getCellData(“Login”,rNum,cNum)我相信肯定有朋友会检查并公布结果
for(int rNum=1;rNum<rows;rNum++){
for(int cNum=0;cNum<cols;cNum++){
System.out.println(xls.getCellData("Login", rNum, cNum));
data[rNum-1][cNum] = xls.getCellData("Login", rNum, cNum);
}
}