UserWarning: name used for saved screenshot does not match file type. It should end with a `.png` extension
警告分析:
截图的名称与文件类型不匹配,screenshot()方法支持.png扩展名结尾,所以截图为.jpg扩展名的图片文件会报警告
环境描述:
Python 3.12.2 selenium 4.0
报错代码:
element = driver.find_element(By.XPATH, '//*[@id="img_div"]')
# 当前路径
current_path=os.path.abspath(os.path.dirname(__file__))
full_img_path = os.path.join(current_path, "img", "verify.jpg")
# 保存截图
element.screenshot(full_img_path)
解决办法
方法一:
把verify.jpg改为verify.png 保存截图为.png图片格式
full_img_path = os.path.join(current_path, "img", "verify.png")
# 保存截图为.png图片格式
element.screenshot(full_img_path)
方法二:
element.screenshot_as_png: 获取二进制数据
# 获取该元素的截图,返回截图的二进制数据
screenshot_binary = element.screenshot_as_png
# 将二进制数据编码为Base64字符串
# base64_str = base64.b64encode(screenshot_binary).decode('utf-8')
# 将二进制保存为图片,这里保存为png、jpg、jpeg等都可以
with open("verify.png", mode="wb")as f:f.write(screenshot_binary)
方法三:
直接使用base64字符串
# 元素截图的base64字符串
element.screenshot_as_base64