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创建XML文档
Mar 01 Python
Python 随机生成中文验证码的实例代码
Mar 20 Python
Python时区设置方法与pytz查询时区教程
Nov 27 Python
初步讲解Python中的元组概念
May 21 Python
python使用clear方法清除字典内全部数据实例
Jul 11 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 Python
基于python log取对数详解
Jun 08 Python
Django csrf 验证问题的实现
Oct 09 Python
QML使用Python的函数过程解析
Sep 26 Python
利用python实现PSO算法优化二元函数
Nov 13 Python
python网络编程之五子棋游戏
May 14 Python
基于Python实现的购物商城管理系统
Apr 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中将数组转成XML格式的实现代码
2011/08/08 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
图片按比例缩放函数
2006/06/26 Javascript
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
Python使用MYSQLDB实现从数据库中导出XML文件的方法
2015/05/11 Python
python发送HTTP请求的方法小结
2015/07/08 Python
详解Python的Django框架中的模版相关知识
2015/07/15 Python
python中利用Future对象异步返回结果示例代码
2017/09/07 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
对numpy中的where方法嵌套使用详解
2018/10/31 Python
对python的输出和输出格式详解
2018/12/08 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
为什么说python更适合树莓派编程
2020/07/20 Python
python 6种方法实现单例模式
2020/12/15 Python
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
大学生的网络创业计划书
2013/12/26 职场文书
入党积极分子思想汇报
2014/01/02 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
创先争优标语
2014/06/27 职场文书
2015年酒店工作总结
2015/04/28 职场文书
十月围城观后感
2015/06/08 职场文书
追悼词范文大全
2015/06/23 职场文书
Python基础之元编程知识总结
2021/05/23 Python
Python OpenGL基本配置方式
2022/05/20 Python
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android