问题

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

解决方案

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

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

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

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

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

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

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

Run Script 用于执行AutoIt脚本

SciTE Script Editor 用于编写AutoIt脚本

2、上传功能如下

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可执行文件

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实现文件上传的更多相关文章

  1. python selenium +autoit实现文件上传 --实践

    upload.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q ...

  2. python+selenium win32gui实现文件上传 enumerate()

    upload = dr.find_element_by_id('exampleInputFile0') upload.click() time.sleep(1) # win32gui dialog = ...

  3. 基于python的selenium两种文件上传操作

    方法一.input标签上传     如果是input标签,可以直接输入路径,那么可以直接调用send_keys输入路径,这里不做过多赘述,前文有相关操作方法. 方法二.非input标签上传 这种上传方 ...

  4. selenium+java利用AutoIT实现文件上传

    转自https://www.cnblogs.com/yunman/p/7112882.html?utm_source=itdadao&utm_medium=referral 1.AutoIT介 ...

  5. Python+selenium(Autolt实现上传)

    AutoIt是一个使用类似BASIC脚本语言的免费软件,被设计用来进行Windows GUI的自动化测试.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务. 此次小编介绍的是利用Auto ...

  6. 利用Selenium实现图片文件上传的两种方式介绍

    在实现UI自动化测试过程中,有一类需求是实现图片上传,这种需求根据开发的实现方式,UI的实现方式也会不同. 一.直接利用Selenium实现 这种方式是最简单的一种实现方式,但是依赖于开发的实现. 当 ...

  7. 使用AutoIt实现文件上传

    在网页上上传文件的时候,Selenium无法直接操作如Flash.JavaScript 或Ajax 等技术所实现的上传功能,这时候我们需要借用一个叫做AutoIt的软件来帮助我们事先自动化的上传操作. ...

  8. 利用 python requests完成接口文件上传

    最近在准备一个公开课,主题就是利用不同的语言和不同的工具去实现文件的上传和下载. 在利用Jmeter去实现功能的时候,以及利用loadrunner去写脚本的时候,都很顺利,没有任何问题,当我尝试用Py ...

  9. python接口自动化7-post文件上传

    前言 文件上传在我们软件是不可少的,最多的使用是体现在我们后台,当然我们前台也会有.但是了解过怎样上传文件吗?这篇我们以禅道文档-创建文档,上传文件为例. post请求中的:Content-Type: ...

随机推荐

  1. Django简介--Django从入门到精通系列教程

    该系列教程系个人原创,并同步发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...

  2. php中curl模拟post提交多维数组(转载)

    原文地址:http://www.cnblogs.com/mingaixin/archive/2012/11/09/2763265.html 今天需要用curl模拟post提交参数,请求同事提供的一个接 ...

  3. awk grep sed cut学习

    awk学习网站 grep sed cut

  4. 取IP的几个方法

    ifconfig eth0|grep " inet add"|cut -d":" -f2|cut -d " " -f1 ifconfig e ...

  5. win8设置自动关机

    运行中输入 shutdown -S -T 3600 表示1个小时后关机,单位是秒

  6. bootstrap---treeview使用方法

    1.html部分: <div id="tree"></div> 2.css设置展开/收缩按钮图片: .tree_arrows_down:before{ co ...

  7. GreenDao 兼容升级,保留旧数据的---全方面解决方案

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  8. Swing小技巧总结

    1. 使JDialog位于屏幕的中央 public void setToScreenCenter(JDialog jd) {           Dimension screenSize = Tool ...

  9. 洛谷 [P1403] 约数研究

    本题的思想很好,正难则反 首先如果暴力枚举每个数的约数个数,一定会超时,那么我们就从约数的角度考虑,题目中问的是1~n的约数个数和,那么我们就枚举约数,看每个约数在1~n中出现过几次. #includ ...

  10. 洛谷 [P1387] 最大正方形

    本题非常有趣. (n^6) 枚举四个端点,每次遍历矩阵求解. (n^4) 先处理前缀和,枚举四个端点,每次比较前缀和和正方形面积. (n^3) 枚举左上方端点,在枚举边长,前缀和优化 (n^2logn ...