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

相关推荐
油丶酸萝卜别吃32 分钟前
utils.js 说明文档
开发语言·javascript·ecmascript
leisoo80973 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
WangYan20223 小时前
基于XGBoost与AI的生态—地学多源数据建模:植被与土地利用识别、土壤碳氮空间预测、生物多样性驱动机制、土壤微生物功能预测、生态退化与风险识别
python·机器学习·xgboost
不会代码的小猴4 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
一只旭宝5 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
金銀銅鐵6 小时前
[Python] 借助 turtle 逐字展示唐诗《金缕衣》
python
coder!mq7 小时前
说几个常见的语法糖?
java·开发语言·算法
gugucoding7 小时前
38. 【Java】Stream API(下):高级操作与性能
java·开发语言
Lhan.zzZ7 小时前
在 Visual Studio 2022 中打造可扩展的动态链接库模块:从零搭建到原理解析
开发语言·c++·visual studio
心平气和量大福大7 小时前
android-实例-蒲公英-更新与安装-5-签名与生成APK
android·java·开发语言