¿Cómo agregar una captura de pantalla para encantar el informe con python?

Tengo este codigo

# 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') 

y trato de tomar una captura de pantalla y guardarlo en un informe de encanto, después de la ejecución tengo:

 > 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' 

¿Cómo puedo arreglar esto?

En lugar de configurar el type como una cadena png , debe usar la constante de tipo de adjunto del módulo allure , que es un Enum con atributo de extension definido:

 from allure.constants import AttachmentType allure.attach('screenshot', driver.get_screenshot_as_png(), type=AttachmentType.PNG) 

Para el encanto 2

 from allure_commons.types import AttachmentType allure.attach(driver.get_screenshot_as_png(), name="Screenshot", attachment_type=AttachmentType.PNG)