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流确认下本地图片是否存在

相关推荐
满天星83035774 分钟前
【C++】智能指针
c语言·开发语言·c++·visual studio
站大爷IP11 分钟前
Airflow调度爬虫任务:从零搭建高效定时采集系统
python
站大爷IP16 分钟前
Python高效实现Word转HTML:从基础到进阶的全流程方案
python
newxtc18 分钟前
【辽宁政务服务网-注册_登录安全分析报告】
运维·selenium·安全·政务·安全爆破
hj104334 分钟前
php上传企业微信附件的方法
开发语言·php·企业微信
测试-鹏哥1 小时前
要将ITP集成到Jenkins Pipeline中,实现开发发版时自动触发自动化测试
运维·python·测试工具·ci/cd·jenkins
程序员三藏1 小时前
Postman接口测试详解
自动化测试·软件测试·python·测试工具·职场和发展·接口测试·postman
L.EscaRC1 小时前
Lua语言知识与应用解析
java·python·lua
清空mega1 小时前
从零开始搭建 flask 博客实验(5)
后端·python·flask
起予者汝也1 小时前
Python基础入门
开发语言·python