这是代码的全部。

for (int i = 0; i <= 1; i++, column++, row++) {
    // read cell, input coordinates: (column, row)
    Cell c1 = sh1.getCell(column, row);
    Cell c2 = sh1.getCell(column + 1, row);
    Cell c3 = sh1.getCell(column + 2, row);
    Cell c4 = sh1.getCell(column + 3, row);

    // return string content
    String locationCode = c1.getContents();
    String locationName = c2.getContents();
    String description = c3.getContents();
    String address = c4.getContents();

    driver.findElement(By.id("tab7")).click();
    driver.findElement(By.id("subtab2")).click();
    driver.findElement(By.id("new")).click();
    driver.findElement(By.id("ExtLocationCode")).clear();
    driver.findElement(By.id("ExtLocationCode")).sendKeys(locationCode);
    driver.findElement(By.id("LocationName")).clear();
    driver.findElement(By.id("LocationName")).sendKeys(locationName);
    driver.findElement(By.id("Description")).clear();
    driver.findElement(By.id("Description")).sendKeys(description);
    driver.findElement(By.id("address1")).clear();
    driver.findElement(By.id("address1")).sendKeys(address);
    driver.findElement(By.id("save")).click();
    driver.findElement(By.id("actions")).click();
    driver.findElement(By.id("save")).click();
}


运行它之后,它说:线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:4

并且不会继续处理excel文件中单元格的下一行和下一行。我的代码有什么问题?

最佳答案

您将在for循环定义中增加列,然后执行以下操作:

Cell c1 = sh1.getCell(column,row);
Cell c2 = sh1.getCell(column+1,row);
Cell c3 = sh1.getCell(column+2,row);
Cell c4 = sh1.getCell(column+3,row);


我认为您不需要在for循环定义for(int i = 0; i<=1; i++, column++, row++)中增加列
除非您有一个非常奇怪的excell工作表布局。尝试for(int i = 0; i<=1; i++, row++)

10-07 16:08
查看更多