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实现子类调用父类的方法
Nov 10 Python
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
python中json格式数据输出的简单实现方法
Oct 31 Python
python利用不到一百行代码实现一个小siri
Mar 02 Python
Python实现的多进程和多线程功能示例
May 29 Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 Python
python scp 批量同步文件的实现方法
Jan 03 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
Django之PopUp的具体实现方法
Aug 31 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
Apr 12 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
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
JS无限树状列表实现代码
2011/01/11 Javascript
JS删除数组元素的函数介绍
2013/03/27 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
ng-alain表单使用方式详解
2018/07/10 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
Python实现从百度API获取天气的方法
2015/03/11 Python
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Python判断有效的数独算法示例
2019/02/23 Python
安装PyInstaller失败问题解决
2019/12/14 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
python实现四人制扑克牌游戏
2020/04/22 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
成人教育自我鉴定
2013/11/01 职场文书
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
市场营销工作计划书
2014/09/15 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
学校教代会开幕词
2016/03/04 职场文书
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python