Selenium web自动化测试经验分享-上传文件之input标签

转眼来到了三月,到了离职再就业的高峰期。愿你不管在哪工作,不管怎样生活,向上的心都不变,继续提高的冲劲只多不少。

Input标签 上传头像

input 标签的文件上传是比较好处理的,只要定位到上传按钮,用 send_keys()发送本地文件路径就可以。

注意:1.绝对路径和相对路径都可以。2.上传的文件要存在。3.上传按钮一定要符合input和 type="file"条件

下面代码是 更换百度贴吧头像:

# 前面代码需要实现登录百度
driver.get('https://www.baidu.com/p/setting/profile/portrait')
time.sleep(2)
i1 = r'D:\40x40.JPG'

# input 标签
driver.find_element_by_id('fileImg').send_keys(i1)
time.sleep(2)
# 成功更新图片
driver.find_element_by_id('savePortrait').click()
time.sleep(5)       # 可以看到实际更换后的结果

# 更换系统建议的头像
driver.find_element_by_css_selector('#recom-wildkid-2 > img').click()
driver.find_element_by_id('savePortrait').click()
time.sleep(5)

Input标签 上传多个文件

i即send_keys()发送多个文件,

下面代码 是网页版百度网盘的上传文件:

A. 使用循环方式

# 用循环的方式:要上传的文件放在列表中,遍历下上传。
shang1 = ["D:\\60x91.JPG", "D:\\40x40.JPG", "D:\\50x50.JPG", "D:\\25x25.JPG", "D:\\35x35.JPG"]
for sh in shang1:
    driver.find_element_by_id('h5Input0').send_keys(sh)     # 百度网盘web的上传文件按钮
    time.sleep(1)       # 单个文件大概上传时间

B.构造多行字符串

构造字符串的时候注意去掉末尾或者开头的换行符

# 构建多行字符串
shang2 = """D:\\60x91.JPG
D:\\40x40.JPG
D:\\50x50.JPG
D:\\25x25.JPG
D:\\35x35.JPG
D:\\45x45.JPG"""

driver.find_element_by_id('h5Input0').send_keys(shang2)

time.sleep(15)      # 所有文件全部上传的时间

单独执行第二种:
在这里插入图片描述

两个方法一起执行:

在这里插入图片描述

交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie

发布了78 篇原创文章 · 获赞 24 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/zyooooxie/article/details/88132205