Selenium中send_keys上传图片方法以及可能失败的原因

news2024/9/19 23:54:34

Python Selenium是一个用于自动化浏览器操作的工具,可以用于模拟用户在浏览器中的各种操作。在使用Python Selenium进行自动化测试时,有时需要上传图片。下面是在这种情况下如何上传图片的步骤:
今天是主要说的是input标签,这种可以用selenium提供的send_keys()方法轻松解决;
selenium提供的send_keys()方法需要两个先决条件,
(1):我们需要先定位到上传图片功能的标签
(2):我们需要确定本地图片的路径
第一步我们需要先定位到上传图片功能的标签
在这里插入图片描述
这里可以看到定位到上传图片的元素,但是,由于Selenium提供send_keys()这个方法的机制,我们就不能定位这个元素了,我们要再这整个div标签里找到,input标签并定位
在这里插入图片描述
找到元素后我们需要确定上传图片的路径,这里可以是本地图片也可以是封装进项目的图片接下来是代码以及注解
(2):我们需要确定本地图片的路径

```java
# 定位到第一步里找到的input标签
dian = self.driver.find_element(By.XPATH,'//*[@class="el-upload el-upload--picture-card"]/input')
sleep(3)
# 这里可以将图片路径直接放在send_keys()里比如:dian.send_keys(D://Dingtalk_20240705104535.jpg)
# 也可以单独封装成一个变量然后send_keys(传输封装路径的变量)
file_path = "D://sss_20240705104535.jpg"
# 可以通过os判断本地文件是否存在
if not os.path.exists(file_path):
    print("File does not exist!")
else:
 # 发送文件路径到输入框
    dian.send_keys(file_path)

当然也可以写成更简便的方式也就是下方代码,具体看自身使用场景

self.driver.find_element("标签路径").send_keys("本地图片路径")

以后如果失败了可以根据一下三点重点检查下自己的代码
1,单纯使用send_keys方法只适用于上传图片中有input标签的
2,定位页面元素要定位到input标签
3,本地路径不要写错,不确定可以用os流确认下本地图片是否存在

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987053.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于R语言绘制GGE双标图3

参考资料: https://cran.r-project.org/web/packages/GGEBiplots/GGEBiplots.pdf GGE叠图法一分析品种环境互作模式的理想方法【作物学报】 GGE 双标图如何看?-CSDN博客 1、品种间两两比较 GGE 双标图可用于直接比较两个品种在各个试验点的表现&…

白银市场暴跌的技术分析与投资策略

一、白银市场暴跌与技术分析 周一(8月5日),现货白银暴跌逾4.5%,并跌破关键的100日移动均线。FXStreet分析师Christian Borjon Valencia对银价技术走势进行了分析,指出银价前景转为看跌,技术面显示白银将进一…

探索Python并发的秘境:Greenlet库的奇幻之旅

文章目录 探索Python并发的秘境:Greenlet库的奇幻之旅背景:为何选择Greenlet?绿野仙踪:Greenlet是什么?安装:如何将Greenlet纳入囊中?功能探索:Greenlet的五大法宝场景应用&#xff…

【系统分析师】-综合知识-软件工程与项目管理

1、按照成本性态分类,可以分为固定成本、变动成本和混合成本。 (1)固定成本。管理人员的工资、办公费、固定资产折旧费、员工培训费、广告费、员工培训费、技术开发经费、办公场地及机器设备的折旧费、房屋及设备租金、管理人员的工资等。 …

提示工程:CO-STAR框架

在人工智能领域,尤其是大型语言模型(LLM)的应用中,提示工程已成为一项至关重要的技能。它不仅需要对技术有深刻的理解,还需要创造力和战略思维的结合。本文将探讨提示工程的重要性,详细介绍CO-STAR框架的使…

0209-开发状态切换(场景切换)功能

一、设置场景状态 1、已有方法 2、实现步骤 引用API:using UnityEngine.SceneManagement 写设置场景状态的方法 场景名字切换,需要获取mSceneName,他是私有的,给一个getset 3、问题 (1)同步加载 加载场…

【Web开发手礼】探索Web开发的秘密(十六)-Vue2(2)前端工程化、Element组件表格、分页

主要介绍了前端工程化Vue的开发流程、Element组件介绍以及常见的Element组件表格、分页!!! 目录 前言 前端工程化 Vue项目-创建 Vue项目-目录结构 Vue项目-启动 Vue项目-配置端口 Vue项目开发流程 Element组件 快速入门 常见组件 表格…

2024杭电多校(4) 1008. 树形DNA【01Trie、哈希】

题意 给定两颗二叉树 S S S 和 T T T,如果对于 S S S 的某个子树 S ′ S^\prime S′,删除若干个(或不删除)其子树后,可以和 T T T 相同(左子树与左子树匹配,右子树与右子树匹配&#xff0…

C++入门基础知识

在之前我们学习了C语言和初阶数据结构的相关知识,现在已经有了一定的代码能力和对数据结构也有了基础的认识,接下来我们将进入到新的专题当中,这个专题就是C。在C中我们需要花费更大的精力和更长的时间去学习这门建立在C语言基础之上的计算机…

新一代AI软件基础设施 | ZStack AIOS平台“智塔”发布

新一代 IT 基础设施,将从通用算力云平台转型为AI算力AIOS平台。 AI正在重构世界。正如世界是立体的,AI重构也正从多维度开启:基础设施重构,业务应用重构,交互模式重构,数据价值重构,生态系统重…

移动IP:让你的设备随时随地保持连接

随着无线网络技术的迅猛发展,在移动中进行数据通信已成为可能。成千上万的人正在使用移动设备畅享互联网,无论是在火车上、汽车内,还是在其他移动场景中。本文将带你了解移动IP(Mobile IP)的工作原理及其对网络应用的影…

LLM在线理解;神将网络理解;transform架构

目录 LLM在线理解 神将网络理解 transform架构 模型的子结构: 三个计算 计算1 计算2 计算3 LLM在线理解 LLM Visualization 神将网络理解 transform架构 模型的子结构: 词向量(Embedding) 前馈神经网络(Feed Forward) 残差连接(Add)和层标准化(Norm) 线性层(Linear…

Python版本和cuda版本不匹配解决办法

一、检查版本是否匹配 使用Python进入控制台,然后执行: >>>print(torch.cuda.is_available())如果输出为 False,则说明不匹配 退出Python环境,再检查系统版本: exit()nvcc -V 二、安装 去官网 PyTorch …

转载一篇关于对Linux磁盘部分mount和挂载的解释

转载自: http://t.csdnimg.cn/V3lgahttp://t.csdnimg.cn/V3lga

3_stm32_pwm呼吸灯

到目前已经可以进行基础的Led亮灭控制、使用定时器中断控制Led的亮灭。但是发现Led只有“亮”和 “灭”两种状态,那是否可以有更多状态?如何有更多状态呢?更进一步的想法,Led亮是有了电压差,其中一端是地,那…

C#:具体类=>抽象类=>接口的变化过程详解

文章目录 简单复习继承与多态具体类抽象类及成员使用语法 接口抽象类到接口的进化 简单复习继承与多态 下面,我用一个交通工具的例子来快速复习一下. 1.首先我定义一个基类Vehicle,代表交通工具的总称.里面定义了一个可被重写的成员方法Run. class Vehicle{public virtual voi…

Python Flask+Echarts实现葡萄酒质量的影响因素分析可视化

提示:本文章参考了哔哩哔哩的python课程李巍老师的 视频教程 文章目录 前言一、相关技术1.Flask2.Echarts3.词云 二、代码部分1.5个前端页面:2.代码 效果图 前言 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总…

代码随想录算法训练营第六天(一)|242.有效的字母异位词

LeetCode 242 有效的字母异位词 题目: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例 1: 输入: s "anagram&q…

韦东山嵌入式linux系列-mmap

应用程序和驱动程序之间传递数据时,可以通过read、 write函数进行。这涉及在用户态 buffer 和内核态 buffer 之间传数据,如下图所示 应用程序不能直接读写驱动程序中的buffer,需要在用户态 buffer 和内核态 buffer 之间进行一次数据拷贝。这种…

6.1.面向对象技术-面向对象相关概念

基本概念 对象:基本的运行实体,为类的实例,封装了数据和行为的整体(数据和行为就是属性和方法),如学生、汽车等真实存在的实体。对象具有清晰的边界、良好定义的行为和可扩展性。 学生有张三、李四等。张三就是具体的个体&#xf…