我遇到此错误java.lang.IndexOutOfBoundsException:索引:0,大小:0,这是我的代码。
WebElement Case_table = driver.findElement(By.id(“ ServiceCommunityTemplate”)); WebElement tablebody = Case_table.findElement(By.tagName(“ tbody”));
List<WebElement> rows = tablebody.findElements(By.tagName("tr"));
Thread.sleep(12000);
int count = rows.size();
System.out.println("ROW COUNT : "+count);
List<WebElement> colHeaderName = rows.get(0).findElements(By.tagName("th"));
List<WebElement> colHeader = driver.findElements(By.xpath(".//*[@id='ServiceCommunityTemplate']//table/thead/tr[2]/th"));
System.out.println("total number of Columns are : " + colHeader.size());
System.out.println("---------------");
int colcount = colHeader.size();
for(int i=1; i<count-1; i++){
List<WebElement> colVals = rows.get(i).findElements(By.tagName("th"));
for(int j=0; j<colcount-1; j++){
System.out.print(colVals.get(j).getText()+ "\t");
}
System.out.println("");
System.out.println("-----------------------------------------------------------------------------");
任何人都可以告诉我,为什么我会收到此错误。
答案 0 :(得分:0)
java.lang.IndexOutOfBoundsException
。
从您的异常中可以明显看出,您正在尝试获取索引为0的元素(即第一个元素),但列表大小为0(即空列表)。
它可以在线发生
List<WebElement> colHeaderName = rows.get(0).findElements(By.tagName("th"));
如果您无法在元素tr
(tableBody
List<WebElement> rows = tablebody.findElements(By.tagName("tr"));
的WebElement,则会在上面的代码中发生
或在线
System.out.print(colVals.get(j).getText()+ "\t");
如果您无法在任一行(th
中找到任何List<WebElement> colVals = rows.get(i).findElements(By.tagName("th"));
元素,就会发生
)