Как прикрепить пользовательский / существующий снимок экрана в отчете о привлекательности? - PullRequest
1 голос
/ 24 февраля 2020

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

@Attachment(value = "Page Screenshot", type = "image/png")
public static byte[] saveScreenshotPNG(WebDriver driver) {
    return ((TakesScreenshot)driver).getScreenshotAs(OutputType.BYTES);
}

Но теперь мне нужно, чтобы у меня уже был скриншот на my desktop, и я хочу прикрепить его с Очарование это возможно?

1 Ответ

1 голос
/ 27 февраля 2020

Вы можете взять существующее изображение и преобразовать его в byte[]. getScreenshotAs() декодирует строку скриншота, поэтому вам, возможно, потребуется это сделать также

Java

@Attachment(value = "Page Screenshot", type = "image/png")
public static byte[] saveScreenshotPNG(String path) {
    File file = new File(path);
    BufferedImage bufferedImage = ImageIO.read(file);

    byte[] image = null;
    try (ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
        ImageIO.write(bufferedImage, "png", bos);
        image = b.toByteArray();
    } catch (Exception e) { }

    // if decoding is not necessary just return image
    return image != null ? Base64.getMimeDecoder().decode(image) : null;
}

Python

with open(path, 'rb') as image:
    file = image.read()
    byte_array = bytearray(file)
    allure.attach(byte_array, name="Screenshot", attachment_type=AttachmentType.PNG)
...