第十二节:上传文件

对于 web 页面的上传功能一般会有以下几种方式。
普通上传:普通的附件上传都是将本地文件的路径作为一个值放
input 标签中,通过form 表单提交的时候将这个值提交给服务器。

插件上传:一般是指基于 Flash JavaScript Ajax 等技术所实现的上传功能或插件。

第一种:普通上传

第十二节:上传文件

第十二节:上传文件

如果能找上传的 input 标签,那么基本都可以通过 send_keys()方法向其输入一个文件地址来实现上传。 

第二种:AutoIt 实现上传
AutoIt :是一个使用类似 BASIC 脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。 

官方网站:https://www.autoitscript.com/site/
从网站上下载 AutoIt 并安装,安装完成在菜单中会看到

第十二节:上传文件

操作步骤:

步骤1. 打开AutoIt Windows Info 工具,鼠标点击 Finder Tool,鼠标将变成一个小风扇形状的图标,按住鼠标左键拖动到需要识别的控件上 。

AutoIt Windows Info 识别“文件名”输入框控件


第十二节:上传文件

AutoIt Windows Info 识别“打开”按钮控件
第十二节:上传文件

通过以上两个步骤得到如下内容:

窗口的 title 为“打开”,标题的 Class 为“#32770”。
文件名输入框的
class 为“Edit”,Instance 为“1” ,所以 ClassnameNN 为“Edit1”(可通过Control标签页查询到该属性)。
打开按钮的
class 为“Button”,Instance 为“1” ,所以 ClassnameNN 为“Button1”。 

步骤2、根据 AutoIt Windows Info 所识别到的控件信息打开 SciTE Script Editor 编辑器,编写脚本 ,保存(**.au3)并通过TOOLS-->F5/GO运行脚本

重要说明:运行脚 本时,上传窗口必须为打开状态。

重要说明:在编写脚本输入路径时,是用一个反斜杠,否则会报无效文件名的错误提示。正确文件路径为:d:\baidu.txt

第十二节:上传文件

   脚本解释:

ControlFocus()方法用于识别 Window 窗口。

WinWait()设置 10 秒钟用于等待窗口的显示,其用法与WebDriver 所提供的 implicitly_wait()类似。

ControlSetText()用于向“文件名”输入框内输入本地文件的路径。

Sleep()方法与 Python time 模块提供的 Sleep()方法用法一样,不过它是以毫秒为单位,Sleep(2000)表示固定休眠 2000 毫秒。

ControlClick()用于点击上传窗口中的“打开”按钮。
步骤3:打开 Compile Script to.exe工具,将au3脚本文件转为 exe 可执行文件

第十二节:上传文件

点击“Browse”选择 upload.au3 文件,点击“Convert”按钮将其生成为 upfile.exe 程序。
步骤4:自动化脚本通过os.system(command)语句调用执行upfile.exe,完成上传操作

第十二节:上传文件

到底,通过autoIt v3完成上传功能。