Cucumber hook scenario.embed 始终在项目根目录创建屏幕截图

cucumber hook scenario.embed always create screenshot at project root

在 cucumber 挂钩中 scenario.embed 始终在我的项目根目录中创建屏幕截图。我需要它来创建不同的位置

scenario.embed(screenshot, "image/png");

我创建下面的代码还是没办法:

File screenShot=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
// extracting date for folder name.
SimpleDateFormat dateFormatForFoldername = new SimpleDateFormat("yyyy-MM-dd");//dd/MM/yyyy
Date currentDate = new Date();
String folderDateFormat = dateFormatForFoldername.format(currentDate);
// extracting date and time for snapshot file
SimpleDateFormat dateFormatForFileName = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");//dd/MM/yyyy
String fileDateFormet = dateFormatForFileName.format(currentDate);
String filefolder="./ScreenShots"+"/FailCase/"+folderDateFormat+"/";
// Creating folders and files
File screenshot = new File(filefolder+fileDateFormet+".jpeg");
FileUtils.copyFile(screenShot, new File(screenshot.getPath()));
byte[] fileContent = Files.readAllBytes(screenshot.toPath());
scenario.embed(fileContent, "image/png");

如何传递目录路径以嵌入功能或覆盖它?

@mpkorstanje - 他正确地指出了这一点

根据他的评论:

使用OutputType.BYTES并将字节直接发送到scenario.embed并将它们直接写入屏幕截图文件

但我的问题是我正在使用 mkolisnyk 包,当我使用它的 @AfterSuite 注释时,它会在根文件夹上创建失败的文件图像。 mkolisnyk 包中似乎有错误。

混合使用 testng 的 AfterSuite 和 @ExtendedCucumberOptions 对我有用