Проблема с вашим кодом в том, что вы каждый раз переписываете строки.Вы используете переменную приращения цикла для создания строк, находящихся внутри другого цикла.Поскольку на одной странице содержится 20 строк, и вы вставляете индекс строки одной страницы от 0 до 20, последняя страница перезаписывается.
Объявите переменную rowCount
вне циклов.И увеличивайте его каждый раз после создания строки.
Попробуйте это:
WebDriverWait wait=new WebDriverWait(driver, 30);
List<WebElement> dropdown =wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//select[@id='txtPageNumber']/option")));
int rowCount = 0;
for(int k=1;k<dropdown.size()-1;k++) {
List<WebElement> newdropdown =wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//select[@id='txtPageNumber']/option")));
List<WebElement> rows = driver.findElements(By.xpath("//table[@class='index']/tbody/tr"));
// List<WebElement> col = driver.findElements(By.xpath("//table[@class='index']/tbody/tr[1]/th"));
for(int i=0;i<rows.size()-1;i++){
WebElement webRow = rows.get(i);
List<WebElement> col = webRow.findElements(By.tagName("td"));
XSSFRow row = sheet.createRow(rowCount);
rowCount++;
for (int j=0; j<col.size(); j++) {
WebElement webCell = col.get(j);
String text = webCell.getText();
Cell excelCell = row.createCell(j);
excelCell.setCellValue(webCell.getText());
}
}
newdropdown.get(k).click();
}