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

Python Selenium是一个用于自动化浏览器操作的工具,可以用于模拟用户在浏览器中的各种操作。在使用Python Selenium进行自动化测试时,有时需要上传图片。下面是在这种情况下如何上传图片的步骤:

今天是主要说的是input标签,这种可以用selenium提供的send_keys()方法轻松解决;

selenium提供的send_keys()方法需要两个先决条件,

(1):我们需要先定位到上传图片功能的标签

(2):我们需要确定本地图片的路径

第一步我们需要先定位到上传图片功能的标签

这里可以看到定位到上传图片的元素,但是,由于Selenium提供send_keys()这个方法的机制,我们就不能定位这个元素了,我们要再这整个div标签里找到,input标签并定位

找到元素后我们需要确定上传图片的路径,这里可以是本地图片也可以是封装进项目的图片接下来是代码以及注解

(2):我们需要确定本地图片的路径

python 复制代码
```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)

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

python 复制代码
self.driver.find_element("标签路径").send_keys("本地图片路径")

以后如果失败了可以根据一下三点重点检查下自己的代码

1,单纯使用send_keys方法只适用于上传图片中有input标签的

2,定位页面元素要定位到input标签

3,本地路径不要写错,不确定可以用os流确认下本地图片是否存在

相关推荐
我还记得那天1 分钟前
C语言递归实现汉诺塔问题
c语言·开发语言
不吃土豆的马铃薯3 分钟前
Spdlog 入门:日志记录器与日志槽基础详解
服务器·开发语言·c++·c·日志·spdlog
凯瑟琳.奥古斯特11 分钟前
传输层核心功能解析
开发语言·网络·职场和发展
我星期八休息12 分钟前
Linux系统编程—库制作与原理
linux·运维·服务器·数据结构·人工智能·python·散列表
Cloud_Shy61819 分钟前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十二章 用户定义函数 上篇)
python·数据分析·excel·pandas
Fuyo_111927 分钟前
C++中的活字印刷术——模板·初阶
开发语言·c++·笔记
在角落发呆28 分钟前
跨越网络鸿沟:传统文件传输与现代内网穿透的奇妙交响
开发语言·php
Season45031 分钟前
C++之模板元编程(前置知识 constexpr)
开发语言·c++
BU摆烂会噶33 分钟前
【LangGraph】House_Agent 实战(四):预定流程 —— 中断与人工干预
android·人工智能·python·langchain
AI玫瑰助手33 分钟前
Python运算符:比较运算符(等于不等等于大于小于)与返回值
android·开发语言·python