使用base64在黄瓜jvm中嵌入屏幕截图

时间:2017-07-17 16:10:32

标签: java cucumber-jvm

我正在尝试使用黄瓜jvm在我的范围报告上显示我捕获的截图。我遇到的问题是.embed只接受在本地存储图像的byte []。我正在尝试分享这份报告,我已经看到了一些针对ruby的解决方案,但对于Java来说并不多。任何帮助将不胜感激。这是我目前的实施。

我还试图将所有图像存储在每次测试运行后创建的测试文件夹中。

        public static void embedScreenshotInReport(Scenario scenario){

        if(scenario.isFailed()){

        String folderExt = baseUtility.getTodayDate();
        String destin = baseUtility.createTestFolder(System.getProperty("user.dir")+"/screenshots/"+folderExt);

        String dest = destin+scenario+".png";

        try{
            String base64Screenshot = null;
            TakesScreenshot tsDriver;
            tsDriver = (TakesScreenshot) getDriver();
            base64Screenshot = tsDriver.getScreenshotAs(OutputType.BASE64);                     

            FileOutputStream out = new FileOutputStream(dest);

            byte[] decodeScreenshot = Base64.decodeBase64(base64Screenshot.getBytes());
            out.write(decodeScreenshot);
            scenario.embed(decodeScreenshot, "image/png");
            out.close();

        }

0 个答案:

没有答案