я хочу показать веб-данные в Excel - PullRequest
0 голосов
/ 08 мая 2019

Я хочу показать все значения в Excel, но они не отображаются

driver.get ( "http://education -india.in / Образование / Курсы / PageNumber = 1 ?");

    WebDriverWait wait=new WebDriverWait(driver, 30);
    List<WebElement> dropdown =wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//select[@id='txtPageNumber']/option")));


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

    }

1 Ответ

1 голос
/ 08 мая 2019

Проблема с вашим кодом в том, что вы каждый раз переписываете строки.Вы используете переменную приращения цикла для создания строк, находящихся внутри другого цикла.Поскольку на одной странице содержится 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();

    }
...