записывать данные в Excel динамически в селене java - PullRequest
0 голосов
/ 11 марта 2020

После выполнения тестового примера с несколькими параметрами я передаю результат (Pass / Fail) в таблицу Excel. есть 6 строк, в которых 1-й результат неудачи входит во все 6 строк (он должен входить только в 1-ю строку), 2-й проход результата начинается с 1-й строки и входит во все 6 строк

Получение кода данных

public static Object[][] getData() throws IOException{

        int rowCount = ExcelUtil.getRowCount();
        int colCount = ExcelUtil.getColumnCount();

        Object[][] data = new Object[rowCount-1][colCount];

        for(int i=1; i<rowCount; i++)
        {
            for(int j=0; j<colCount; j++)
            {
                //Check cell is empty or not
                if (data[i-1][j] == null) {
                    data[i-1][j] = "";
                }
                //change values to string
                data[i-1][j] = ExcelUtil.setCellDataToString(i, j);
            }
        }
        return data;
    }

Контрольный пример

public static void signIn(String email, String password, String result) throws IOException, InterruptedException {
        LoginPage lp = PageFactory.initElements(driver, LoginPage.class);

        driver.navigate().to(loginUrl);

        lp.email().sendKeys(email);
        lp.password().sendKeys(password);
        lp.submitlogin().click();

        //Verify
        String expectedUrl = "http://automationpractice.com/index.php?controller=my-account";
        String actualUrl = driver.getCurrentUrl();
        String loginmessage;

        if (expectedUrl.equalsIgnoreCase(actualUrl)) {
            loginmessage = "pass";
            lp.logout().click();
        }else {
            loginmessage ="fail";
        }

        ExcelUtil.writeIntoExcel(filePath, loginmessage);
    }

Запись в Excel

public static void writeIntoExcel(String FilePath, String dataToWrite) throws IOException {
        int rowCount = ExcelUtil.getRowCount();
        int colCount = ExcelUtil.getColumnCount();

        try {
            for (int i = 1; i <= rowCount; i++) {
                shFile.getRow(i).createCell(colCount-1).setCellValue(dataToWrite); 
                fileOut = new FileOutputStream(filePath);
                wbFile.write(fileOut);
            }
            fileOut.close();
        } catch (Exception e) {
            System.out.println("Data is not entered into excel");
        }
    }

1 Ответ

0 голосов
/ 12 марта 2020

Вы не должны повторять строки для каждого теста. Измените метод

publi c stati c void writeIntoExcel

, чтобы найти номер строки на основе содержимого электронной почты и пароля, а затем создать ячейки результата в этой строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...