AutoIT解决自动化上传下载文件调用Windows窗口
AutoIT
AutoIT 是脚本编辑器,用于Windows GUI(图形用户界面)中进行自动化操作,可以定位windows窗口,编写脚本操作,并编译成exe文件,可调用执行。
** 常用三个组件 **
AutoIT Window Info(x64) :用来定位
SciTE Script Editor :用来写脚本
Compile Script to .exe(x64):用来转换成exe
下载安装
下载地址:https://www.autoitscript.com/site/autoit/downloads/
下载后运行exe文件安装
我的安装到 E:\software
使用AotuIt 操作windows上传窗口
1. 打开AutoIt定位窗口组件
2. 定位上传窗口属性 (鼠标选中Finder Tool 拖拽至属性窗口)
Title=打开,Class=#32770,ClassnameNN=Edit1。注:每个浏览器Title都不一样
Title=打开,Class=#32770,ClassnameNN=Button1。
3. 打开autoIt编辑器,编写代码
Local $hWnd = WinWaitActive("打开", "", 3) ;等待上传下载窗口出现
;设置上传的文件
ControlSetText($hWnd,"","Edit1","E:\材料字典表模板.xlsx")
Sleep(1000)
;点击上传按钮
ControlClick($hWnd,"","Button1")
编写后将文件保存为 xxx.au3
调试代码 文本编辑器 Tools – Go 或者 按 F5 上传窗口需要打开状态
4. 将脚本文件转成exe文件
调试exe文件,打开cmd 窗口输入upload.exe路径(带引号)
5. java中调用exe文件
selenium 操作浏览器打开上传窗口后,调用exe执行
try {
Runtime.getRuntime().exec("C:\\Users\\peijy\\Desktop\\upload.exe");
} catch (IOException e) {
e.printStackTrace();
}
6. 参数化
Local $hWnd = WinWaitActive($CmdLine[1], "", 3) ;等待上传下载窗口出现
;设置上传的文件
ControlSetText( $hWnd,"","Edit1",$CmdLine[2])
Sleep(1000)
;点击上传按钮
ControlClick($hWnd,"","Button1")
$CmdLine[1] 方括号中数字代表 第几个参数
调用 upload.exe 打开 E:\abc.txt
IE 浏览器下载弹框处理
Local $hWnd = WinWaitActive("[CLASS:IEFrame]", "", 5)
Sleep(1000)
Send("!s")