9

我有这个代码:

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

我尝试截取屏幕截图并将其保存到诱惑报告中,执行后我有:

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

我怎样才能解决这个问题?

4

3 回答 3

14

诱惑 2

from allure_commons.types import AttachmentType

allure.attach(driver.get_screenshot_as_png(), name="Screenshot", attachment_type=AttachmentType.PNG)
于 2017-10-31T05:18:16.603 回答
7

您需要使用模块附件类型常量,而不是将其设置type为字符串,这是一个定义的属性:pngallureEnumextension

from allure.constants import AttachmentType

allure.attach('screenshot', driver.get_screenshot_as_png(), type=AttachmentType.PNG)
于 2015-04-28T20:36:01.893 回答
0

在您的 conftest.py 添加以下内容,确保您已经有一个驱动程序夹具:

代码块

于 2020-06-15T09:43:25.803 回答