获取java.lang.IndexOutOfBoundsException:索引:0,大小:0异常

时间:2018-10-23 21:42:38

标签: selenium-webdriver automation

我遇到此错误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("-----------------------------------------------------------------------------");

任何人都可以告诉我,为什么我会收到此错误。

1 个答案:

答案 0 :(得分:0)

尝试从列表中获取元素但列表中没有具有给定索引的元素时,会抛出

java.lang.IndexOutOfBoundsException

从您的异常中可以明显看出,您正在尝试获取索引为0的元素(即第一个元素),但列表大小为0(即空列表)。

它可以在线发生

List<WebElement> colHeaderName = rows.get(0).findElements(By.tagName("th"));

如果您无法在元素trtableBody

中找到标签名称为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"));元素,就会发生 )