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

相关推荐
计算机编程-吉哥38 分钟前
脑肿瘤MRI智能识别系统:基于深度学习的像素级脑肿瘤语义分割平台【计算机毕业设计选题推荐】
人工智能·python·深度学习·算法·毕业设计·课程设计·大数据毕业设计选题推荐
小木_.42 分钟前
Python 离线识别滑块缺口距离,项目推荐
开发语言·python·滑块识别·人机验证·滑块缺口·缺口识别
Cenxi1 小时前
Python字符串方法练习手册
人工智能·python
liliangcsdn1 小时前
因子权重矩阵处理-因子权重收缩Shrinkage算法的探索
开发语言·python·机器学习
用户8356290780511 小时前
使用 Python 在 Excel 中添加和编辑形状
后端·python
2601_962300471 小时前
python在运维上可以干什么,请举几个具体的例子
运维·python·系统管理·网络监控·自动化脚本
小刘在重生~1 小时前
Java 异常体系完整笔记
java·笔记·python
用户8356290780511 小时前
使用 Python 为 PDF 添加和管理超链接
后端·python
千千寰宇1 小时前
[Python/测试] pytest:简洁、可扩展的 Python 测试框架
python·软件质量保障与测试
少陽君2 小时前
Python 并发编程:IO 等待用线程/asyncio,CPU 计算才用进程
数据库·python·php