对于web页面的上传功能一般有两类实现方式:一类是将本地文件的路径作为一个值放在input标签中,通过form表单将这个值提交给服务器;另一个类是插件上传,一般基于flash/javascript或者Ajax等技术实现上传功能。

一.input标签

input标签可以直接通过send_keys()方法上传附件,具体方法可百度。以下重点说明基于Autolt实现上传的方法。

二.基于Autolt实现上传

1.下载并安装Autolt。官方网站:https://www.autoitscript.com/site/

2.安装成功后打开AutoIt Windows Info工具。鼠标点击Finder Tool变成扇叶指针,按住鼠标左键拖动到待识别的控件(文件名),获取控件信息。获得的文件名信息,其中Basic Window info中Title为“打开”,Class是“#32770”;Basic Control info中Class是“Edti”,instance是“1”

3.获取打开按钮的控件信息,方法同步骤2,记录获取到的信息

4.打开SciTE Script Editor编辑器,根据获取到的控件信息,编写脚本

WinWait()设置5秒用于等待上传窗口的显示
ControlFocus()把输入焦点定位到上传文本框中
ControlSetText()输入文件路径
sleep 等待上传时间,单位毫秒
ControllClick()点击打开按钮,开始上传

5.脚本编写完成后,可通过Tools-->GO运行脚本,运行正常,将其保存为.au3格式

6.打开Compile Script to.ext工具,将步骤5中生成的文件转换为exe可执行文件。

生成如下文件

7.通过自动化测试脚本调用up.exe文件

#打开上传窗口
driver.find_element_by_xpath("//*[@id='filePicker']").click()
#调用up.exe文件
os.system("C:\Users\guorf\Desktop\up.exe")

最新文章

  1. JavaScript 详说事件机制之冒泡、捕获、传播、委托
  2. Servlet3.0新特性
  3. sqlite以及python的应用
  4. 通过XmlSerializer 实现XML的序列化与反序列化
  5. VMware Workstation不可恢复的错误:(vmui)
  6. C++ 'dynamic_cast' and Java 'instanceof' 使用对比
  7. python_字符串
  8. [HDOJ5543]Pick The Sticks(DP,01背包)
  9. 如何自学java迅速成为java高手
  10. java关键字 (jdk6),各自的含义是什么?
  11. Ubuntu16.04 Using Note
  12. java————面向对象概念
  13. ADC获取滑块的值(8通道)
  14. 分布式协调服务Zookeeper集群搭建
  15. PHP快速排序算法
  16. 程序设计实践 (Brian W. Kernighan Rob Pike 著)
  17. SQL注入漏洞解决方法
  18. python 爬取网页内容
  19. 【转】一次由过量线程引发的OOM排查
  20. 20145214 《网络对抗技术》 Web基础

热门文章

  1. 【16】LRUChache
  2. vue mvvm原理与简单实现 -- 上篇
  3. layui表单之单选框提交
  4. centos7 sshpass 用法详解
  5. selenium的显示等待、隐式等待
  6. vue $router.push 传参的问题
  7. CSS之浮动布局及相关问题
  8. python面试的100题(1)
  9. 转:为什么说Java中只有值传递
  10. 1.3 使用jmeter进行http接口测试