先看一段代码 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。(下载地址



安装完成后,使用 

active版本控制python python调用activex控件_python

进行创建和调试脚本。


active版本控制python python调用activex控件_操作系统_02


使用

active版本控制python python调用activex控件_active版本控制python_03

获取控件的title 如下图:

active版本控制python python调用activex控件_active版本控制python_04


在进行定位"添加附件"按钮的坐标


active版本控制python python调用activex控件_运维_05

注:另外WinWait(窗口标题,文本参数) 中的文本参数如果有,必须要加上添加。


active版本控制python python调用activex控件_active版本控制python_06


 


照着这种方式,使用AutoIt函数来模拟操作即可,验证是否可用,打开浏览器(最好浏览器保持处于全屏状态)进入到要点击按钮的页面,在脚本编辑器中菜单栏 Tools -> Go 进行运行脚本(或者按F5),如果成功可以看到界面会自动操作,如脚本出错,编辑器下方会有日志输出。


active版本控制python python调用activex控件_操作系统_07


最后保存脚本,使用 

active版本控制python python调用activex控件_操作系统_08

 将脚本转换成exe格式。

active版本控制python python调用activex控件_字符串_09


保存成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",参数)
;遇错终止