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 相关文章推荐
centos系统升级python 2.7.3
Jul 03 Python
python常规方法实现数组的全排列
Mar 17 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
Jun 13 Python
python对json的相关操作实例详解
Jan 04 Python
Python 文件操作的详解及实例
Sep 18 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
python GUI实现小球满屏乱跑效果
May 09 Python
python求最大值最小值方法总结
Jun 25 Python
Python实现把类当做字典来访问
Dec 16 Python
Python使用OpenPyXL处理Excel表格
Jul 02 Python
MATLAB 如何求取离散点的曲率最大值
Apr 16 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
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
php5.3 注意事项说明
2013/07/01 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
激活 ActiveX 控件
2006/10/09 Javascript
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
Angular2安装angular-cli
2017/05/21 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
[38:23]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第二场 11.01
2020/11/02 DOTA
python实现图片处理和特征提取详解
2017/11/13 Python
Python中列表与元组的乘法操作示例
2018/02/10 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
Python定义一个函数的方法
2020/06/15 Python
pycharm如何使用anaconda中的各种包(操作步骤)
2020/07/31 Python
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
土耳其时尚潮流在线购物网站:Trendyol
2017/10/10 全球购物
什么时候需要进行强制类型转换
2016/09/03 面试题
高中班长自我鉴定
2013/12/20 职场文书
模范教师事迹材料
2014/12/16 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
英文慰问信范文
2015/03/24 职场文书
学习计划是什么
2019/04/30 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL