先看一段代碼 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。(下載地址)
安裝完成后,使用
進行創建和調試腳本。


使用
獲取控件的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",參數) ;遇錯終止