Как извлечь данные из определенного столбца в таблице, а затем присвоить их массиву переменных с помощью цикла? - PullRequest
0 голосов
/ 05 июня 2018

Я хочу извлечь все данные из столбца 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 голосов
/ 23 ноября 2018

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();
...