python selenium系列(10)实战技巧之文件上传
admin
2023-07-19 03:21:59
0

前言

Web UI自动化测试中可能会遇到文件上传的场景,针对该场景主要有两种解决思路:如果是 type="file">元素,可优先尝试send_keys() 输入文件路径;如果实际情况必须要处理windows文件选择框,则可尝试借助AutoIt实现。

 

处理方法

假设现在我们有如下一个页面,需要进行文件上传操作:

 python selenium系列(10)实战技巧之文件上传

 

手工进行文件上传的步骤为:点击【选择文件】->弹出windows文件选择框->选择文件->点击【开始上传】按钮。

 

分析页面源码,如下:

 python selenium系列(10)实战技巧之文件上传


从页面源码可知,【选择文件】是input标签的元素,且type=file’。因此,可以尝试先定位到该元素,然后执行send_keys方法传入文件路径,实现代码如下:

 

browser = webdriver.Chrome()
file_path = r'E:\Python培训计划\selenium自动化测试\上传测试.xlsx'

# 注意file_path使用绝对路径:unknown error: path is not absolute
# 使用send_keys方法模拟打开windows弹框选择上传文件的过程
browser.find_element(By.XPATH,'//*[@id="uploadify_excel-upload_1"]').send_keys(file_path) 

#点击【开始上传】按钮
browser.find_element(By.ID,'startUpload').click() #上传文件到服务器

 

总结

本文主要介绍文件上传的处理方法,调用send_keys方法传入文件路径即可,无需模拟弹出windows选择框且选择文件的过程。通过该方法可以简单、高效的实现选择文件的目的,避免将处理思路卡在如何选择文件这个问题上。


四 其他资源

关于python学习、分享、交流,笔者开通了微信公众号【小蟒社区】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学python。


相关内容

热门资讯

特朗普与泽连斯基通电话 乌克兰总统泽连斯基当地时间6月14日称,他与美国总统特朗普当天通了电话,就俄乌冲突问题进行了“长时间...
伊朗最高领袖顾问警告将打击以色... 当地时间6月14日深夜,伊朗最高领袖政治顾问韦拉亚提在社交媒体发文表示,“零时已至,发射装置正就位待...
伊朗外交部谴责以色列袭击贝鲁特... 当地时间14日晚,伊朗外交部发表声明,强烈谴责以色列当天下午对贝鲁特达希耶一处住宅区实施的军事行动,...
伊朗总统:伊朗最高国家安全委员... 新华社德黑兰6月14日电 据伊朗伊斯兰共和国广播电视台14日晚报道,伊朗总统佩泽希齐扬表示,伊朗最高...
伊朗西部地区机场航班暂停 据伊朗方面当地时间14日消息,伊朗西部地区的机场航班已暂停,直至另行通知。据称,此决定是基于当前情况...
伊朗总统称维护国家团结是优先事... 新华社德黑兰6月14日电 据伊朗塔斯尼姆通讯社14日报道,伊朗总统佩泽希齐扬在与国内媒体负责人举行的...
日本拟将航空自卫队改编为航空宇... 新华社东京6月14日电 (记者李子越 刘洁秋)据《日本经济新闻》14日报道,日本政府计划于2026年...
推动终身学习蔚然成风 为广东发... □杨帅 终身学习既是时代发展的必然要求,也是广东奋进前行的有力支撑。当前,我们正处在一个知识爆炸、变...
原创 又... 据香港英文媒体《南华早报》6月5日报道,此前在国际顶尖名校加州大学伯克利分校物理系任教的顶尖天体物理...
原创 荣... 荣耀新机从不缺席,而且近月连续推出新机,比如4月的荣耀X80i、荣耀畅玩70C等;5月的荣耀WIN ...