How to add a screenshot to allure report with python?
12,274
Solution 1
For allure 2
from allure_commons.types import AttachmentType
allure.attach(driver.get_screenshot_as_png(), name="Screenshot", attachment_type=AttachmentType.PNG)
Solution 2
Instead of setting the type
as a string png
, you need to use allure
module attachment type constant, which is an Enum
with extension
attribute defined:
from allure.constants import AttachmentType
allure.attach('screenshot', driver.get_screenshot_as_png(), type=AttachmentType.PNG)
Author by
Aliaksandr Klimovich
Updated on June 14, 2022Comments
-
Aliaksandr Klimovich almost 2 years
I have this code:
# coding: utf-8 from selenium import webdriver import pytest import allure @pytest.yield_fixture(scope='session') def driver(): _driver = webdriver.PhantomJS() yield _driver _driver.quit() def test_ya(driver): with allure.step('open ya.ru and take screenshot'): driver.get('http://ya.ru/') allure.attach('screenshot', driver.get_screenshot_as_png(), type='png')
and I try to take a screenshot and save it to allure report, after execution I have:
> with self._attachfile("%s-attachment.%s" % (uuid.uuid4(), attach_type.extension)) as f: if isinstance(body, text_type): E AttributeError: 'str' object has no attribute 'extension'
How can I fix this?