python+selenium+autoit实现文件上传功能


Posted in Python onAugust 23, 2017

问题

在做web端ui层自动化的时候会碰到文件上传的操作,经常有朋友问到,这里总结一下

解决方案

第一种:type=file的上传文件,类似如下的

python+selenium+autoit实现文件上传功能

使用类似这样的代码就可以完成:

driver.find_element('name','file').send_keys('./小强测试品牌.png')

第二种:就是第一种除外的,实现起来较为麻烦,这里用到了autoit,大致步骤如下:

1、下载并安装autoit,之后在开始菜单可以看到如下

python+selenium+autoit实现文件上传功能

AutoIt Windows Info 用于识别Windows控件信息

Compile Script to.exe 用于将AutoIt生成 exe 执行文件

Run Script 用于执行AutoIt脚本

SciTE Script Editor 用于编写AutoIt脚本

2、上传功能如下

python+selenium+autoit实现文件上传功能

3、识别元素,主要是上图中的文件名输入框和打开按钮,使用AutoIt Windows Info完成,记录结果如下:

文件名输入框的class 为“Edit”,Instance为“1”

打开按钮的class 为“Button”,Instance为“1”

4、编写脚本,使用SciTE Script Editor,内容如下:

ControlFocus("文件上传", "","Edit1")
WinWait("[CLASS:#32770]","",10)
ControlSetText("文件上传", "", "Edit1","D:python_workspaceQiangSEAutopic小强测试品牌.jpg")
Sleep(2000)
ControlClick("文件上传", "","Button1");

上述代码中特别需要注意“文件上传”字样是你点击上传按钮之后弹出的对话框的title,可能每个系统会不一样

5、验证脚本

保证页面的上传对话框打开,然后运行脚本tools>go

6、打开Compile Script to.exe工具,将其生成为exe可执行文件

python+selenium+autoit实现文件上传功能

7、python脚本中调用

up=self.driver.find_element('class name','avatar-uploader-trigger')
up.find_element('class name','ant-btn').click()
os.system('D:\python_workspace\QiangSEAuto\upload.exe')
time.sleep(20)

其他

其实还有其他的解决方法,感兴趣的自行研究吧,比如还可以利用如下的方式:

Python pywin32库,识别对话框句柄,进而操作

SendKeys 库

keybd_event 模拟按键

总结

以上所述是小编给大家介绍的python+selenium+autoit实现文件上传,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python通过floor函数舍弃小数位的方法
Mar 17 Python
20招让你的Python飞起来!
Sep 27 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
python向已存在的excel中新增表,不覆盖原数据的实例
May 02 Python
Python if语句知识点用法总结
Jun 10 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
PyQt编程之如何在屏幕中央显示窗体的实例
Jun 18 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
python exit出错原因整理
Aug 31 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 Python
Django与JS交互的示例代码
Aug 23 #Python
python paramiko模块学习分享
Aug 23 #Python
定制FileField中的上传文件名称实例
Aug 23 #Python
基于python元祖与字典与集合的粗浅认识
Aug 23 #Python
Python 多线程Threading初学教程
Aug 22 #Python
Python3实现抓取javascript动态生成的html网页功能示例
Aug 22 #Python
Python实现公历(阳历)转农历(阴历)的方法示例
Aug 22 #Python
You might like
php实现学生管理系统
2020/03/21 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
详解vue.js 开发环境搭建最简单攻略
2017/06/12 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
[01:59]游戏“zheng”当时试玩会
2019/08/21 DOTA
分析Python读取文件时的路径问题
2018/02/11 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
python实现远程控制电脑
2019/05/23 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
售后服务承诺书范文
2014/03/26 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
物流业务员岗位职责
2015/04/03 职场文书
整改通知书
2015/04/20 职场文书
于丹论语心得观后感
2015/06/15 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP