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

M · October 16, 2019 · Last by M replied at October 16, 2019 · 681 hits
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 条回复 时间 点赞
M #1 · October 16, 2019 作者

求大佬解答

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

M #3 · October 16, 2019 作者
YueC 回复

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)
M #6 · October 16, 2019 作者
YueC 回复

谢谢 用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())
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up