如何从表中的特定列提取数据,然后使用循环将其分配给变量数组?

时间:2018-06-05 13:36:26

标签: katalon-studio

我想从列B中提取所有数据,然后使用for循环将其分配给变量。我使用此代码,但循环错误。 例如: 总行数= 10 变量1到变量10具有相同的数据;然后它会循环10次。所以数组变量的最终值都是相同的:(

for (int getAllAccts = 1; getAllAccts <= TotalRowCount.size(); getAllAccts++) {
try{
    String[] accName = new String[TotalRowCount.size()]
    for(int accNameCount=1; accNameCount < TotalRowCount.size(); accNameCount++){
            accName[accNameCount] = driver.findElement(By.xpath("//*[@id='tbl-table1']/tbody/tr[" + (getAllAccts)+ "]/td[2]/a")).getText();
            log.logWarning('Customer Name' + accNameCount + ' ' + accName[accNameCount])
    }
}
catch(org.openqa.selenium.StaleElementReferenceException ex) {
    String[] accName
    for(int accNameCount=1; accNameCount < TotalRowCount.size(); accNameCount++){
            accName[accNameCount] = driver.findElement(By.xpath("//*[@id='tbl-table1']/tbody/tr[" + (getAllAccts)+ "]/td[2]/a")).getText();
            log.logWarning('Customer Name' + accNameCount + ' ' + accName[accNameCount])
    }
}

}

1 个答案:

答案 0 :(得分:0)

getAllAccts在for循环的内部(嵌套)内部始终相同。因此,所有accName都将具有相同的值。

更改

accName[accNameCount] = driver.findElement(By.xpath("//*[@id='tbl-table1']/tbody/tr[" + (getAllAccts)+ "]/td[2]/a")).getText();

accName[accNameCount] = driver.findElement(By.xpath("//*[@id='tbl-table1']/tbody/tr[" + (accNameCount)+ "]/td[2]/a")).getText();