Python selenium窗口截图时的报错

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,所有截图均完整保存下来格式正确,但是会在一条用例后这个错,想知道为什么会报这个错,并且为什么只在一条用例里报错
截图方法代码:

img

错误截图

img

保存下来的图片截图

img

建议该检查一下测试用例的代码
从日志来看,已经输出了“已截图已保存”,那么说明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”关键字,估计是图片名字有问题,可从这个方向来查找。