如何使用Python调用AutoIt来实现Flash控件的上传功能
先看一段代码 upload.au3(这个后缀autoit3的格式):
;等待出现title为数据采集-军课网-MozillaFirefox的浏览器窗口
WinWait("数据采集 - XX网 - Mozilla Firefox","") ;验证窗口是否激活,如没有激活就把窗口激活
IfNotWinActive("数据采集 - XX网 - Mozilla Firefox","")ThenWinActivate("数据采集 - XXX - Mozilla Firefox","") ;等待窗口激活
WinWaitActive("数据采集 - XXX网 - Mozilla Firefox","") ;移动鼠标到要点击元素坐标位置(flash控件按钮)
MouseMove(,) ;按下鼠标左键
MouseDown("left")
;松开鼠标左键会弹出window选择附件的窗口
MouseUp("left") ;等待 title为文件上传的windows窗口出现
WinWait("文件上传","命名空间树控件") ;判断窗口是否激活,如果没有激活,把窗口激活
IfNotWinActive("文件上传","命名空间树控件")ThenWinActivate("文件上传","命名空间树控件") ;等待激活窗口
WinWaitActive("文件上传","命名空间树控件") ;ControlFocus("窗口标题","窗口文字",控件类名称)
;聚焦到 controlID=Edit1的编辑框中(Edit1=Class:EditInstance:)
ControlFocus("文件上传","","Edit1") ;等待1000毫秒
Sleep() ;ControlSetText("窗口标题","窗口文字","控件类名称","新文本")
;为控件设置文本(相当于文本框输入内容)
ControlSetText("文件上传","","Edit1","C:\Users\tsbc\Desktop\2015年春季课程采集文件.docx")
Sleep() ;ControlClick("窗口标题","窗口文字","控件类名称"[,鼠标按键][,点击次数]])
;鼠标点击按钮控件完成上传过程
ControlClick("文件上传","","Button1")
那么这个脚本如何编写,运用,建议大家安装AutoIt3。(下载地址)
import os
os.system("E:\upload.exe")
+++++++++++++++++++++++++++++++++++
{系统环境变量}
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("标题","提示文本",等待时间[,图标选项])
;置托盘气泡提示(/xp){系统函数}
SoundPlay("文件名"[,等待方式])
;播放声音
Call("自定义功能函数")
;调用自定义功能函数
CDTray("盘符","开关命令")
;光驱开关
AdlibEnable("自定义功能函数"[,间隔时间])
;激活意外窗口处理
TimerStop(时间标志)
;计时结束
TimerStart()
;计时开始
Exit()
;结束
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",参数)
;遇错终止
如何使用Python调用AutoIt来实现Flash控件的上传功能的更多相关文章
- js上传插件uploadify自动检测不到flash控件的问题
[问题描述] 项目开发中,由于使用了js的一个上传插件uploadify,下载的是flash版本的,后来在谷歌浏览器上运行时经常报flash控件未安装,虽然下图是uploadify自动检测自动弹出来的 ...
- 解决SurfaceView调用setZOrderOnTop(true)遮挡其他控件
解决SurfaceView调用setZOrderOnTop(true)遮挡其他控件的问题 http://marller.blog.51cto.com/8699646/1762028 FAQ: Surf ...
- 基于python的Elasticsearch索引的建立和数据的上传
这是我的第一篇博客,还请大家多多指点 Thanks ♪(・ω・)ノ 今天我想讲一讲关于Elasticsearch的索引建立,当然提前是你已经安装部署好Elasticsearch. ok ...
- PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性不起作用的问题解决办法
在<PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性>中介绍layout的layoutSizeConstraint属性后,反复测试 ...
- python调用c++/c 共享库,开发板上编译的一些坑!
1.对于python,ctypes只能load动态库,但现在我的对象是一个静态库,而且我没有源代码,静态库在编译过程中没有加--fPIC参数,所以我也没办法将其编译为动态库,有没有什么方法在pytho ...
- python3、selenium、autoit3,通过flash控件上传文件
autoit.au3 #include <Constants.au3> WinWait(); //暂停执行脚本,直到上传对话框出现 WinActive("打开") Wi ...
- Python Django缓存,信号,序列化,文件上传,Ajax登录和csrf_token验证
本节内容 models操作 Django的缓存 请求方式 序列化 Form 配合Ajax实现登录认证 上传文件 Ajax csrf_token验证方式 1 models操作 单表查询: curd(增 ...
- Python实例讲解 -- wxpython 基本的控件 (按钮)
使用按钮工作 在wxPython 中有很多不同类型的按钮.这一节,我们将讨论文本按钮.位图按钮.开关按钮(toggle buttons )和通用(generic )按钮. 如何生成一个按钮? 在第一部 ...
- Python Tkinter参考资料之(通用控件属性)
大部分控件的共享选项: 选项(别名) 说明 单位 典型值 没有此属性的控件 background(bg) 当控件显示时,给出的正常颜色 color 'gray25''#ff4400' border ...
随机推荐
- 为Eclipse安装主题插件
方法2:通过站点更新 eclipse:Help->Install New Software->Work with:Update Site -http://eclipse-color-the ...
- 数据库表结构对比同步mysqldiff
开发服务器的数据库表结构进行了修改,或者修改过多,为了与线上的数据库结构同步,可以使用mysqldiff工具对线上数据库打补丁. mysqldiff Windows下载地址:http://dev.my ...
- LeetCode Remove Duplicate Letters
原题链接在这里:https://leetcode.com/problems/remove-duplicate-letters/ 题目: Given a string which contains on ...
- Simple JavaScript Inheritance--一个极简JS面向对象-类库
面向对象 面向对象思想的几个重要特征(针对类的要求): 抽象-封装.信息隐藏(将内部实现的方法和数据隐藏, 定义开放的接口) 继承-子类可以使用父类的资源,并可以定制自己的资源, 资源包括方法和数据 ...
- RAC One Node转换为RAC
1.查看状态 [oracle@rone1 ~]$ srvctl config database -d rone Database unique name: rone Database name: ro ...
- PRML读书笔记——2 Probability Distributions
2.1. Binary Variables 1. Bernoulli distribution, p(x = 1|µ) = µ 2.Binomial distribution + 3.beta dis ...
- [翻译] 为什么Uber的数据库从Postgres 切换到 MySql
Uber工程师团队发布了一个重要的博客文章:他们的数据库从Postgres从移动到MySQL.毫不夸张地说,阅读这篇文章是一种享受,特别是因为他们提到这些细节:磁盘格式和那对他们2个数据库的表现的影响 ...
- Markdown 语法和 MWeb 写作使用说明
---恢复内容开始--- # Markdown 语法和 MWeb 写作使用说明 Markdown 的设计哲学 Markdown 的目標是實現「易讀易寫」. 不過最需要強調的便是它的可讀性.一份使用 M ...
- Java之美[从菜鸟到高手演变]之Spring源码学习 - 环境搭建
准备工作 1.下载安装STS(Spring Tool Suite),在eclipse market里直接搜索.下载.安装.2.下载安装gradle, Spring源码使用gradle构建,下载后解压到 ...
- sprint3终极演示
目标功能: 已实现功能: 首页.订单.资料界面 首页.订单.资料按钮 化妆师.化妆品.化妆视频按钮 化妆师.化妆品的详细分类 化妆师.化妆品的详细信息显示 化妆师的预约按钮和联系按钮 化妆品的购买按钮 ...