先看一段代码 upload.au3(这个后缀autoit3的格式):
;等待出现title为数据采集-军课网-MozillaFirefox的浏览器窗口WinWait("数据采集 - XX网 - Mozilla Firefox","");验证窗口是否激活,如没有激活就把窗口激活IfNotWinActive("数据采集 - XX网 - Mozilla Firefox","")ThenWinActivate("数据采集 - XXX - Mozilla Firefox","");等待窗口激活WinWaitActive("数据采集 - XXX网 - Mozilla Firefox","");移动鼠标到要点击元素坐标位置(flash控件按钮)MouseMove(537,725);按下鼠标左键MouseDown("left");松开鼠标左键会弹出window选择附件的窗口MouseUp("left");等待 title为文件上传的windows窗口出现WinWait("文件上传","命名空间树控件");判断窗口是否激活,如果没有激活,把窗口激活IfNotWinActive("文件上传","命名空间树控件")ThenWinActivate("文件上传","命名空间树控件");等待激活窗口WinWaitActive("文件上传","命名空间树控件");ControlFocus("窗口标题","窗口文字",控件类名称);聚焦到 controlID=Edit1的编辑框中(Edit1=Class:EditInstance:1)ControlFocus("文件上传","","Edit1");等待1000毫秒Sleep(1000);ControlSetText("窗口标题","窗口文字","控件类名称","新文本");为控件设置文本(相当于文本框输入内容)ControlSetText("文件上传","","Edit1","C:\Users\tsbc\Desktop\2015年春季课程采集文件.docx")Sleep(1000);ControlClick("窗口标题","窗口文字","控件类名称"[,鼠标按键][,点击次数]]);鼠标点击按钮控件完成上传过程ControlClick("文件上传","","Button1")
那么这个脚本如何编写,运用,建议大家安装AutoIt3。()
安装完成后,使用
进行创建和调试脚本。
![](https://images0.cnblogs.com/blog/686364/201503/271941430833177.jpg)
![](https://images0.cnblogs.com/blog/686364/201503/271941441303363.png)
使用
获取控件的title 如下图:
![](https://images0.cnblogs.com/blog/686364/201503/271941450203736.png)
![](https://images0.cnblogs.com/blog/686364/201503/271941460057436.png)
在进行定位"添加附件"按钮的坐标
![](https://images0.cnblogs.com/blog/686364/201503/271941470053608.png)
注:另外WinWait(窗口标题,文本参数) 中的文本参数如果有,必须要加上添加。
![](https://images0.cnblogs.com/blog/686364/201503/271941491927710.jpg)
照着这种方式,使用AutoIt函数来模拟操作即可,验证是否可用,打开浏览器(最好浏览器保持处于全屏状态)进入到要点击按钮的页面,在脚本编辑器中菜单栏 Tools -> Go 进行运行脚本(或者按F5),如果成功可以看到界面会自动操作,如脚本出错,编辑器下方会有日志输出。
![](https://images0.cnblogs.com/blog/686364/201503/271941500833382.png)
最后保存脚本,使用
将脚本转换成exe格式。
![](https://images0.cnblogs.com/blog/686364/201503/271941506148711.png)
![](https://images0.cnblogs.com/blog/686364/201503/271941514589368.png)
保存成exe文件后,同样打开网页,进入到上传页面,双击生成的exe文件,能够进行自动操作exe文件创建完成可以直接调用。
最后注:Python中执行exe程序, 引入 os 包,使用 os.system(command) 即可。如:
import osos.system("E:\upload.exe")
+++++++++++++++++++++++++++++++++++
下面附上AutoIt 函数参考:
{系统环境变量}
-
EnvUpdate();更新环境变量EnvGet("变量名称");取环境变量ClipGet();取剪辑板文本EnvSet("变量名称"[,"值"]);置环境变量ClipPut("文本");置剪辑板文本
{文件,目录,磁盘管理}
-
IniRead("文件名","功能区","关键字","缺省值");Ini文件读关键字的值IniDelete("文件名","功能区","关键字");Ini文件删除关键字IniWrite("文件名","功能区","关键字","值");Ini文件写关键字的值FileInstall("源文件","目标文件"[,参数]);安装文件FileFindFirstFile("文件名");查找文件(第一次)FileFindNextFile(文件号);查找文件(继续)FileRecycle("源文件");放入回收站FileChangeDir("目录");改变当前目录FileCreateShortcut("文件名","快捷方式名"[,"工作目录","args","desc","图标","热键"]);建立快捷方式DirCreate("目录");目录创建DirCopy("源目录","目标目录"[,参数]);目录复制DirRemove("目录"[,参数]);目录删除DirMove("源目录","目标目录"[,参数]);目录移动DriveGetDrive("类别");驱动器查找FileGetLongName("完整路径和文件名");取长文件名DriveSpaceTotal("路径");取磁盘空间DriveSpaceFree("路径");取磁盘剩余空间FileGetShortName("完整路径和文件名");取短文件名DriveGetLabel("路径");取驱动器卷标DriveGetType("路径");取驱动器类型DriveGetFileSystem("路径");取驱动器文件格式DriveGetSerial("路径");取驱动器序列号DriveStatus("路径");取驱动器状态FileGetVersion("文件名");取文件版本FileGetSize("文件名");取文件大小FileGetTime("文件名"[,选项]);取文件日期FileGetAttrib("文件名");取文件属性FileSaveDialog("标题","初始目录","文件类型"[,选项]);文件保存对话框FileOpen("文件名",打开方式);文件打开FileOpenDialog("标题","初始目录","文件类型"[,选项]);文件打开对话框FileRead(文件号或"文件名",字符个数);文件读FileReadLine(文件号或"文件名"[,行号]);文件读行FileCopy("源文件","目标文件"[,参数]);文件复制FileClose(文件号);文件关闭FileSelectFolder("提示文本","根目录",参数);文件夹选择FileDelete("路径");文件删除FileExists("路径");文件是否存在FileWrite(文件号或"文件名","内容");文件写FileWriteLine(文件号或"文件名","内容");文件写行FileMove("源文件","目标文件"[,参数]);文件移动DriveSetLabel("路径","卷标名");置驱动器卷标FileSetTime("文件","日期",选项[,参数]);置文件日期FileSetAttrib("文件","+-RASHNOT"[,参数]);置文件属性
-
{键盘控制}
-
Send("按键"[,参数]);发送HotKeySet("热键"[,"自定义功能函数"]);重置热键
{鼠标控制}
-
MouseGetCursor();取鼠标指针类型MouseGetPos();取鼠标坐标MouseDown("按键");鼠标按下MouseClickDrag("按键",第一点横坐标,第一点纵坐标,第二点横坐标,第二点纵坐标[,速度]);鼠标按住拖动MouseClick("按键"[,横坐标,纵坐标[,次数[,速度]]]);鼠标点击MouseUp("按键");鼠标放开MouseMove(横坐标,纵坐标[,速度]);鼠标移动
{数学函数}
-
Exp(n);e的n次平方BitNOT(数值);非运算BitOR(值1,值2);或运算Log(数字或数学表达式);取对数ACos(数字或数学表达式);取反余弦ATan(数字或数学表达式);取反正切ASin(数字或数学表达式);取反正弦Abs(数字或数学表达式);取绝对值Mod(值1,值2);取模数Sqrt(数字或数学表达式);取平方根Random([[最小值,]最大值]);取随机数Cos(数字或数学表达式);取余弦Tan(数字或数学表达式);取正切Sin(数字或数学表达式);取正弦Round(数字或数学表达式[,小数点后保留位数]);四舍五入BitXOR(值1,值2);位或运算BitShift(值,移动数);位移运算BitAND(值1,值2);与运算
{信息框,对话框}
-
ProgressOn("标题","主文本"[,"子文本"[,横坐标[,纵坐标[,选项]]]]);打开进度条窗口ProgressOff();关闭进度条窗口SplashOff();关闭置顶窗口ProgressSet(进度值[,"子文本"[,"主文本"]]);进度设置InputBox("标题","提示"[,"缺省文本"[,"密码符号"[,宽度,高度[,左边,右边[,等待时间]]]]]);输入框MsgBox(按钮参数,"标题","信息文本"[,等待时间]);信息框SplashImageOn("标题","图像文件名"[,宽度[,高度[,横坐标[,纵坐标[,选项]]]]]);置顶图像窗口SplashTextOn("标题","文本"[,宽度[,高度[,横坐标[,纵坐标[,选项[,"字体名称"[,"字体大小"[,"字体重量"]]]]]]]]);置顶文本窗口ToolTip("提示文本"[,横坐标,纵坐标]);置提示文本TrayTip("标题","提示文本",等待时间[,图标选项]);置托盘气泡提示(2000/xp)
{系统函数}
SoundPlay("文件名"[,等待方式]);播放声音Call("自定义功能函数");调用自定义功能函数CDTray("盘符","开关命令");光驱开关AdlibEnable("自定义功能函数"[,间隔时间]);激活意外窗口处理TimerStop(时间标志);计时结束TimerStart();计时开始Exit(0);结束AdlibDisable();禁止意外窗口处理BlockInput(参数);禁止用户输入Break(参数);禁止用户退出MemGetStats();取内存状态AutoItWinGetTitle();取系统窗口标题PixelGetRGB(横坐标,纵坐标);取像素点RGB三色PixelGetColor(横坐标,纵坐标);取像素点颜色PixelSearch(左边,顶边,右边,底边,颜色值[,shade-variation][,间隔像素数]]);搜索颜色URLDownloadToFile("连接地址及文件名","存储到的文件名");下载文件SetError(值);置变量@errorAutoItWinSetTitle("新标题");置系统窗口标题SoundSetWaveVolume(音量大小);置音量
{进程管理}
-
ProcessWait("进程"[,等待时间]);等待进程存在ProcessWaitClose("进程"[,等待时间]);等待进程关闭ProcessClose("进程");关闭进程Shutdown(关机方式);关机ProcessExists("进程");进程是否存在Sleep(时间);睡眠/暂停运行RunAsSet(["用户名","domain","密码"]);以别人身份登录运行RunWait(@ComSpec&"/c"&'DOS命令行',"",参数);运行DOS命令RunWait("文件名"[,"工作目录"[,参数]]);运行并等待结束Run("文件名"[,"工作目录"[,参数]]);运行程序
{注册表管理}
-
RegRead("键路径","键名");读键值RegDelete("键路径"[,"键名"]);删除键RegWrite("键路径","键名","类型",值);写键值
{字符串管理}
-
StringFormat("格式",$var1[,...$var32]);格式化字符串StringLen("字符串");取长度StringRight("字符串",字符数);取右边StringMid("字符串",开始位置,字符数);取中间StringLeft("字符串",字符数);取左边StringStripCR("字符串");删除回车符StringStripWS("字符串",参数);删除空格StringTrimRight("字符串",字符数);删除右边StringTrimLeft("字符串",字符数);删除左边StringIsASCII("字符串");是否为ASCIIStringIsDigit("字符串");是否为阿拉伯数字StringIsUpper("字符串");是否为大写StringIsFloat("字符串");是否为浮点小数StringIsSpace("字符串");是否为空StringIsXDigit("字符串");是否为十六进制字符StringIsAlNum("字符串");是否为数字StringIsLower("string");是否为小写StringIsInt("字符串");是否为整数StringIsAlpha("字符串");是否为字母StringAddCR("字符串");添加换行符StringReplace("字符串","查找的字符串","替换后的字符串"[,数量[,区分大小写]]);文本替换StringUpper("字符串");转换为大写StringLower("字符串");转换为小写StringInStr("字符串","字符"[,大小写]);字符包含StringSplit("字符串","参考符");字符串分离
{变量与转换函数}
-
IsDeclared(变量);变量是否被声明Asc("字符");取Asc码Eval(变量或表达式);取变量值UBound(数组名[,维数]);取数组大小Int(小数或表达式);取整Chr(ASC码);取字符IsAdmin();是否为管理员IsNumber(变量);是否为数字IsArray(变量);是否为数组IsFloat(变量或数值);是否为小数IsInt(变量或数值);是否为整数IsString(变量);是否为字符Dec("十六进制");转换为十进制Hex(十进制数,长度);转换为十六进制Number(表达式);转换为数字String(表达式);转换为字符
{窗口管理}
-
WinExists("标题"[,"文字"]);窗口是否存在WinActive("标题"[,"文字"]);窗口是否激活WinSetOnTop("标题","文字",参数);窗口置顶WinWait("标题"[,"文字"[,等待时间]]);等待窗口出现WinWaitClose("标题"[,"文字"[,等待时间]]);等待窗口关闭WinWaitActive("标题"[,"文字"[,等待时间]]);等待窗口激活WinWaitNotActive("标题"[,"文字"[,等待时间]]);等待窗口取消激活状态WinMenuSelectItem("标题","文字","菜单项1"[,"菜单项2"[,"菜单项3"……]]);调用菜单WinClose("标题"[,"文字"]);关闭窗口WinMinimizeAllUndo();恢复“全部最小化”的窗口WinActivate("标题"[,"文字"]);激活窗口WinKill("标题"[,"文字"]);强制关闭窗口WinGetTitle("标题"[,"文字"]);取窗口标题WinGetHandle("标题"[,"文字"]);取窗口句柄WinGetClientSize("标题"[,"文字"]);取窗口客户区大小WinGetClassList("标题"[,"文字"]);取窗口类列表WinGetText("标题"[,"文字"]);取窗口文字WinGetCaretPos();取窗口中控件坐标WinGetState("标题"[,"文字"]);取窗口状态WinGetPos("标题"[,"文字"]);取窗口坐标WinMinimizeAll();全部最小化WinMove("标题","文字",横坐标,纵坐标[,宽度[,高度]]);移动窗口WinSetTitle("标题","文字","新标题");置窗口标题WinSetState("标题","文字",参数);置窗口状态
{控制管理}
-
ControlCommand("窗口标题","窗口文字","控件类名称","命令","选项");发送控制命令ControlSend("窗口标题","窗口文字","控件类名称","文本"[,参数]);发送文本到控件ControlDisable("窗口标题","窗口文字","控件类名称");禁止控件ControlGetFocus("窗口标题"[,"窗口文字"]);取焦点控件的类名称ControlGetPos("窗口标题","窗口文字","控件类名称");取控件位置ControlGetText("窗口标题","窗口文字","控件类名称");取控件文字StatusbarGetText("窗口标题"[,"窗口文字"[,状态栏部分]]);取状态栏文本ControlSetText("窗口标题","窗口文字","控件类名称","新文本");设置控件文本ControlClick("窗口标题","窗口文字","控件类名称"[,鼠标按键][,点击次数]]);鼠标点击控件ControlShow("窗口标题","窗口文字","控件类名称");显示控件ControlMove("窗口标题","窗口文字","控件类名称",横坐标,纵坐标[,宽度[,高度]]);移动控件ControlHide("窗口标题","窗口文字","控件类名称");隐藏控件ControlEnable("窗口标题","窗口文字","控件类名称");允许控进ControlFocus("窗口标题","窗口文字","控件类名称");置焦点
{系统设置}
AutoItSetOption("MustDeclareVars",参数);变量是否预先声明AutoItSetOption("WinTitleMatchMode",参数);标题匹配方式AutoItSetOption("WinWaitDelay",参数);窗口等待延迟AutoItSetOption("SendAttachMode",参数);发送跟随模式AutoItSetOption("SendKeyDelay",参数);发送延迟AutoItSetOption("CaretCoordMode",参数);符号坐标匹配方式AutoItSetOption("SendCapslockMode",参数);恢复大小写状态AutoItSetOption("WinDetectHiddenText",参数);检测隐藏文字AutoItSetOption("WinSearchChildren",参数);检测子窗口AutoItSetOption("SendKeyDownDelay",参数);键盘按下延迟AutoItSetOption("MouseClickDownDelay",参数);鼠标按下延迟AutoItSetOption("MouseClickDelay",参数);鼠标单击延迟AutoItSetOption("MouseClickDragDelay",参数);鼠标拖动延迟AutoItSetOption("MouseCoordMode",参数);鼠标坐标匹配方式AutoItSetOption("ExpandEnvStrings",参数);特殊符号扩展AutoItSetOption("TrayIconDebug",参数);托盘代码提示AutoItSetOption("WinTextMatchMode",参数);文字匹配方式AutoItSetOption("PixelCoordMode",参数);像素点坐标匹配方式AutoItSetOption("TrayIconHide",参数);隐藏托盘AutoItSetOption("RunErrorsFatal",参数);遇错终止