第十二节:上传文件

来源:互联网 发布:上海行知小学 编辑:程序博客网 时间:2024/06/05 04:16
对于 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()方法与 Pythontime 模块提供的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完成上传功能。


原创粉丝点击