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

相关推荐
m0_748554818 小时前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
smj2302_796826528 小时前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
阿正呀9 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
九转成圣9 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
SmartRadio9 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
2501_901200539 小时前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
laowangpython9 小时前
Rust 入门:GitHub 热门内存安全编程语言
开发语言·其他·rust·github
我叫汪枫9 小时前
在后台管理系统中,如何递归和选择保留的思路来过滤菜单
开发语言·javascript·node.js·ecmascript
_.Switch9 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
软件技术NINI9 小时前
webkit简介及工作流程
开发语言·前端·javascript·udp·ecmascript·webkit·yarn