UserWarning: name used for saved screenshot does not match file type. It should end with a .png
extension warnings.warn("name used for saved screenshot does not match file "
做web自动化测试,写了个自动截图方法用来每条用例执行后截图,图片格式定义的是.png,所有截图均完整保存下来格式正确,但是会在一条用例后这个错,想知道为什么会报这个错,并且为什么只在一条用例里报错
截图方法代码:
错误截图
保存下来的图片截图
建议该检查一下测试用例的代码
从日志来看,已经输出了“已截图已保存”,那么说明take_screenshot
已经执行完毕了
此外,selenium的源码如下
def get_screenshot_as_file(self, filename):
if not filename.lower().endswith('.png'):
warnings.warn("name used for saved screenshot does not match file "
"type. It should end with a `.png` extension", UserWarning)
从代码可知,warnings的前提是filename没有以.png
,进一步说明take_screenshot
函数自身没啥问题,所以接下来就要检查有没有其他地方调用过get_screenshot_as_file
,调用时传递的filename是否以.png
结尾
UserWarning只是一个警告信息,如果图片能正常保存下来,这个是没问题的,这个警告也有可能是同一秒截图2张,文件重名的问题,文件名用毫秒级保存试试
既然有提示,那么肯定是处理不妥当的地方。
当从一小段代码,无法分析具体出问题的地方,只能靠猜测;
1.图片保存,本身是一种io操作,目前input是 selenium操作,一般没问题,那么出现问题的地方就在于输出;
2.根据提示信息“name和.png”关键字,估计是图片名字有问题,可从这个方向来查找。