Python allure 添加附件图片无法查看

FyueC · 2019年10月16日 · 最后由 FyueC 回复于 2019年10月16日 · 3245 次阅读
from selenium import webdriver
import time
import pytest
import allure
import os

@allure.feature('111111111')
@allure.severity('critical')
def test_1():
    """这是用例描述 test_1"""
    d = webdriver.Firefox()
    d.get('https://www.baidu.com')

    allure.attach('baidu.png',d.get_screenshot_as_file('baidu.png'),attachment_type=allure.attachment_type.PNG)
    time.sleep(2)
    d.quit()
    assert 0==1

代码如上
但是执行后,在测试报告中无法查看图片,,进入目录打开原文件也无法打开,提示不支持此文件格式,selenium 截图是可以打开的,就是经过这个 allure 一转就打不开了

windows 内提示图如下:

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
最佳回复

接收参数应该是 driver.get_screenshot_as_png() 返回图片数据, get_screenshot_as_file 返回值只有 True 和 False
顺序应该还是要调换的

共收到 6 条回复 时间 点赞

求大佬解答

'baidu.png',d.get_screenshot_as_file('baidu.png') 最新版的 allure-pytest 这两个参数位置交换下

YueChen 回复

TypeError: a bytes-like object is required, not 'bool'
这是互换之后的报错,应该不是这个的原因,allure-pytest 版本是 2.8.6

接收参数应该是 driver.get_screenshot_as_png() 返回图片数据, get_screenshot_as_file 返回值只有 True 和 False
顺序应该还是要调换的

allure.attach(d.get_screenshot_as_png(),'baidu.png',attachment_type=allure.attachment_type.PNG)
YueChen 回复

谢谢 用 get_screenshot_as_png() 按照你的写法可以了,但是我用这种方法为什么不行呢

with open(d.get_screenshot_as_file('baidu.png'),'rb') as file:
       allure.attach(file.read(), 'baidu.png', attachment_type=allure.attachment_type.PNG)

单独用文件读写这样就可以:

with open('baidu.png','rb') as file:
    with open('copy.png','wb') as file2:
        file2.write(file.read())
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册