selenium 截图报错

news/2024/12/12 17:33:37/

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


http://www.ppmy.cn/news/1554554.html

相关文章

知识图谱9:知识图谱的展示

1、知识图谱的展示有很多工具 Neo4j Browser - - - - 浏览器版本 Neo4j Desktop - - - - 桌面版本 graphX - - - - 可以集成到Neo4j Desktop Neo4j 提供的 Neo4j Bloom 是用户友好的可视化工具,适合非技术用户直观地浏览图数据。Cypher 是其核心查询语言&#x…

2024年12月大语言模型最新对比:GPT-4、Claude 3、文心一言等详细评测

前言 随着人工智能技术的快速发展,大语言模型(LLM)已经成为了技术领域最热门的话题。本文将详细对比目前主流的大语言模型,帮助大家选择最适合的工具。 一、OpenAI GPT系列 1. GPT-4 核心优势: 多模态理解能力强 逻辑推理能力出色 创造…

CSS 第一章

B站《前端Web开发HTML5CSS3移动web视频教程》第三天的课程:基础选择器、文字控制属性 一、关于css基础 1.CSS定义 CSS是层叠样式表的缩写,是一种样式表语言,用来描述HTML的美化内容。 2.书写方式 选择器 {属性名:属性值&…

框架建设实战6——缓存组件

说起分布式缓存,如今redis大行其道。不过,我们在创建缓存组件时,需要着重考虑如下几点: 1.客户端选型 本组件基于springboot2的默认实现,即lettuce客户端。不同客户端区别如下: 名称描述 优缺点分析 jedis1.springboot1.5.*默认 2.老牌客户端,使用稳定…

在Ubuntu服务器上备份文件到自己的百度网盘

文章目录 概述安装bypy同步文件定时任务脚本 概述 之前自购了一台阿里云服务器,系统镜像为Ubuntu 22.04, 并且搭建了LNMP开发环境(可以参考:《Ubuntu搭建PHP开发环境操作步骤(保姆级教程)》)。由于项目运行中会产生附…

Phoenix5.1.3安装

环境说明 准备三台服务器,分别为:bigdata141(作为HBase主节点)、bigdata142、bigdata143,已经搭建好HBase集群,我这边HBase版本为2.2.7再准备一台服务器,bigdata144,可作为Phoenix客…

[Redis#19] 集群 | 数据分片 | docker模拟 | 故障转移 | 集群扩容

目录 集群 数据分片算法 1. 哈希求余 2 一致性哈希算法 3. 哈希槽分区算法 (Redis 使用) Docker搭建集群 i:创建目录和配置文件 编写 generate.sh 脚本 执行生成命令 ii:编写 docker-compose.yml 网络配置 iii: 构建集群 连接并验证集群 重…

实时数据开发|Flink状态计算 有状态VS无状态,区别和优劣

有状态计算是Flink非常重要的特性之一。 有状态计算是指在程序计算过程中,在Flink程序内部存储计算产生的中间结果,并提供给后续Function或算子计算结果使用。如图5-1所示,状态数据可以维系在本地存储中,这里的存储可以是Flink的…