TakesScreenshot в Selenium с Java не работает - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь создать функцию для получения скриншота в селене в конце тестов. Я передаю 3 параметра: «Результат теста», «Сообщение», «Истина / Ложь», чтобы пользователь мог решить, принимать ли печать.

Однако при выполнении вызова функции он не принимает При печати с экрана генерируется HTML с выполненными шагами, но без печати. ​​

Функция

public void escreveRelatorio(boolean status, String msg, boolean printScreen) {

        scenario.write(msg);

        if(printScreen) {
            scenario.embed(((TakesScreenshot)driver).getScreenshotAs(OutputType.BYTES), "image/png");
        }

        if(status == false) {
            Assert.fail(msg);
        }

    }

Вызов функции в середина тестов.

generic.escreveRelatorio(false, "O número de confirmação foi gerado: " + num, true);

Или

public void validaNumeroConfirmacao() {

    String num = generic.obterTexto(lblConfirmationNumber).substring(23);

    if(!num.equals("1")){
        generic.escreveRelatorio(false, "O número de confirmação foi gerado: " + num, true);
    } else {
        generic.escreveRelatorio(true, "O número de confirmação foi gerado: " + num, true);
    }

}

Что я делаю не так?

1 Ответ

1 голос
/ 09 марта 2020

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

Ваш getScreenshotAs () вернет байт [], но вы ничего не делаете с ним.

File scrfile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);    
FileUtils.copyFile(scrfile, new File("/screenshot/SomeUniqueName.png"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...