使用AutoIt实现UI自动化上传附件
2016-12-20 18:37
267 查看
1、下载AutoIt,https://www.autoitscript.com/site/autoit/downloads/(这个地址下载下来的不好使的话,自行搜索下载,CSDN上有很多)
2、找到安装后的文件路径,打开autoit窗口信息工具
3、点击要上传图片的按钮,打开文件选择框,注意,一定要打开windows的文件选择框
4、将控件探测工具分别拖至选择图片窗口的文件名输入框以及打开按钮处,记录需要的类等信息
5、打开autoit的sci te编辑脚本,输入;另存为au3文件
WinActivate("打开");
;ControlFocus("title","text",controlID) Edit1=Edit instance 1
ControlFocus("打开", "","Edit1")
; Wait 10 seconds for the Upload window to appear
WinWait("打开","[CLASS:#32770]",10)
; Set the File name text on the Edit field
ControlSetText("打开", "", "Edit1", "C:\Users\Administrator\Desktop\1.jpg")
Sleep(2000)
; Click on the Open button
ControlClick("打开", "","Button1");
参数化的写法:
WinWaitActive($CmdLine[1])
WinActive($CmdLine[1])
ControlSetText($CmdLine[1],"","[CLASS:Edit;INSTANCE:1]",$CmdLine[2])
ControlClick($CmdLine[1],"","[CLASS:Button;INSTANCE:1]")
Send("!o")
附注:
ControlFocus ( "title", "窗口文本", controlID) 设置输入焦点到指定窗口的某个控件上;
WinWait ( "title题" , "窗口文本"
, 超时时间 ) 暂停脚本的执行直至指定窗口存在(出现)为止;
ControlSetText ( "title", "窗口文本", controlID,
"新文本" ) 修改指定控件的文本;
Sleep ( 延迟 ) 使脚本暂停指定时间段;
ControlClick ( "title", "窗口文本", 控件ID
, 按钮 , 点击次数 ) 向指定控件发送鼠标点击命令;
其中,title即AutoIt Window Info识别出的Title字段,controlID即AutoIt
Window Info识别出的Class和Instance的拼接,如上图拼接后的结果应为:Button1;
6、验证脚本是否正确,点击页面的上传图片按钮,打开上传图片对话框;切换到sci te编辑脚本窗口,点击工具菜单----执行脚本,注意观察下面的日志,执行完毕后查看页面是否已经上传好图片
7、打开auit编译脚本工具,打开上一步保存的au3文件,转换成exe文件
8、selenium中调用exe程序
参数化写法的调用:
2、找到安装后的文件路径,打开autoit窗口信息工具
3、点击要上传图片的按钮,打开文件选择框,注意,一定要打开windows的文件选择框
4、将控件探测工具分别拖至选择图片窗口的文件名输入框以及打开按钮处,记录需要的类等信息
5、打开autoit的sci te编辑脚本,输入;另存为au3文件
WinActivate("打开");
;ControlFocus("title","text",controlID) Edit1=Edit instance 1
ControlFocus("打开", "","Edit1")
; Wait 10 seconds for the Upload window to appear
WinWait("打开","[CLASS:#32770]",10)
; Set the File name text on the Edit field
ControlSetText("打开", "", "Edit1", "C:\Users\Administrator\Desktop\1.jpg")
Sleep(2000)
; Click on the Open button
ControlClick("打开", "","Button1");
参数化的写法:
WinWaitActive($CmdLine[1])
WinActive($CmdLine[1])
ControlSetText($CmdLine[1],"","[CLASS:Edit;INSTANCE:1]",$CmdLine[2])
ControlClick($CmdLine[1],"","[CLASS:Button;INSTANCE:1]")
Send("!o")
附注:
ControlFocus ( "title", "窗口文本", controlID) 设置输入焦点到指定窗口的某个控件上;
WinWait ( "title题" , "窗口文本"
, 超时时间 ) 暂停脚本的执行直至指定窗口存在(出现)为止;
ControlSetText ( "title", "窗口文本", controlID,
"新文本" ) 修改指定控件的文本;
Sleep ( 延迟 ) 使脚本暂停指定时间段;
ControlClick ( "title", "窗口文本", 控件ID
, 按钮 , 点击次数 ) 向指定控件发送鼠标点击命令;
其中,title即AutoIt Window Info识别出的Title字段,controlID即AutoIt
Window Info识别出的Class和Instance的拼接,如上图拼接后的结果应为:Button1;
6、验证脚本是否正确,点击页面的上传图片按钮,打开上传图片对话框;切换到sci te编辑脚本窗口,点击工具菜单----执行脚本,注意观察下面的日志,执行完毕后查看页面是否已经上传好图片
7、打开auit编译脚本工具,打开上一步保存的au3文件,转换成exe文件
8、selenium中调用exe程序
Runtime r = Runtime.getRuntime(); //因为工程文件放在了C盘下,直接访问res文件夹下的exe文件会拒绝访问,暂时改成电脑E盘下的可执行文件调用 String scriptFile = "E:/test.exe"; @SuppressWarnings("unused") Process pro = null; try { pro = r.exec(scriptFile); browserEmulator.pause(15000); } catch (IOException e) { e.printStackTrace(); }
参数化写法的调用:
Runtime r = Runtime.getRuntime(); String scriptFile = "./res/AutoItScript/upload.exe"; @SuppressWarnings("unused") Process pro = null; try { pro = r.exec(scriptFile+" "+windowsTitle+" "+fileNameWithPath); logger.info("upload file:" + fileNameWithPath);; } catch (IOException e) { e.printStackTrace(); logger.error("Run uploadfile.exe fail"); }
相关文章推荐
- 使用DOM动态创建js实现多附件上传客户端
- SpringMVC+uploadify3.2.1版实现附件上传功能(直接可以使用)
- autoit实现自动化上传下载探索之路
- 使用Plupload实现直接上传附件至七牛云存储
- jeecms系统使用介绍——通过二次开发实现对word、pdf、txt等上传附件的全文检索
- 使用DOM方法实现多附件上传客户端
- 如何使用Python调用AutoIt来实现Flash控件的上传功能
- 使用selenium的WebDriver和ChromeDriver实现UI自动化
- vue2.0 使用element-ui里的upload组件实现多图上传。采用FORMDATA的方式上传。
- (4)selenium常见问题-Autoit实现上传附件
- 使用ThinkPHP实现附件上传
- 使用Plupload实现直接上传附件至七牛云存储
- 使用DOM方法实现多附件上传客户端
- 使用ADF组件实现附件上传下载功能
- STRUTS实现多附件上传(转)
- (转自dflying chen)使用Anthem.NET 1.5中的FileUpload控件实现Ajax方式的文件上传
- 使用Anthem.NET 1.5中的FileUpload控件实现Ajax方式的文件上传
- Struts中使用commons-fileupload实现上传例子
- 实现和163邮箱添加附件相似的多上传文件功能
- 项目开发技巧(四):使用JspSmartupload实现文件上传下载(三):jspsmartupload samples