Почему скриншот base64 становится пустым в отчете по электронной почте? - PullRequest
1 голос
/ 15 октября 2019

Когда я выполняю с локального компьютера, я могу правильно видеть скриншот в отчете экстента для невыполненного сценария. Когда я выполню его от Дженкинса и получу отчет по экстенту по электронной почте, он будет пустым. Я пытаюсь использовать base64 в моем случае. Код, указанный ниже:

public static String getBase64Screenshot() throws IOException {
        WebDriver driver1 = BaseConfig.setDriver();
        Date oDate = new Date();
        SimpleDateFormat oSDF = new SimpleDateFormat("yyyyMMddHHmmss");
        String sDate = oSDF.format(oDate);
        String encodedBase64 = null;
        FileInputStream fileInputStream = null;
        File source = ((TakesScreenshot) driver1).getScreenshotAs(OutputType.FILE);
        String destination =System.getProperty("user.dir")+"/target/cucumber-reports/"+"Screenshot_" + sDate + ".png";
        File finalDestination = new File(destination);
        FileUtils.copyFile(source, finalDestination);

        try {
            fileInputStream =new FileInputStream(finalDestination);
            byte[] bytes =new byte[(int)finalDestination.length()];
            fileInputStream.read(bytes);
            encodedBase64 = new String(Base64.getEncoder().encode(bytes));

        }catch (FileNotFoundException e){
            e.printStackTrace();
        }
        return "data:image/png;base64,"+encodedBase64;
    }


@After(order = 1)
     public void afterScenario(Scenario scenario) {
      WebDriver driver1 = BaseConfig.setDriver();
     if (scenario.isFailed()) {
     String screenshotName = scenario.getName().replaceAll(" ", "_");
     System.out.println(screenshotName);
     try {
           Reporter.addScreenCaptureFromPath(getBase64Screenshot());
         }catch (IOException e) 

     }
     }

пустой снимок экрана

...