先看一段代码 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 sbcDesktop2015年春季课程采集文件.docx") Sleep(1000) ;ControlClick("窗口标题","窗口文字","控件类名称"[,鼠标按键][,点击次数]]) ;鼠标点击按钮控件完成上传过程 ControlClick("文件上传","","Button1")
那么这个脚本如何编写,运用,建议大家安装AutoIt3。(下载地址)
安装完成后,使用 进行创建和调试脚本。
使用获取控件的title 如下图:
在进行定位"添加附件"按钮的坐标
注:另外WinWait(窗口标题,文本参数) 中的文本参数如果有,必须要加上添加。
照着这种方式,使用AutoIt函数来模拟操作即可,验证是否可用,打开浏览器(最好浏览器保持处于全屏状态)进入到要点击按钮的页面,在脚本编辑器中菜单栏 Tools -> Go 进行运行脚本(或者按F5),如果成功可以看到界面会自动操作,如脚本出错,编辑器下方会有日志输出。
最后保存脚本,使用 将脚本转换成exe格式。
保存成exe文件后,同样打开网页,进入到上传页面,双击生成的exe文件,能够进行自动操作exe文件创建完成可以直接调用。
最后注:Python中执行exe程序, 引入 os 包,使用 os.system(command) 即可。如:
import os os.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(值) ;置变量@error AutoItWinSetTitle("新标题") ;置系统窗口标题 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("字符串") ;是否为ASCII StringIsDigit("字符串") ;是否为阿拉伯数字 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",参数) ;遇错终止