以后不在此处更新日志了,欢迎测友到新窝找我:http://www.wuchuanhu.cn/

AutoIT自动化之上传文件弹出框处理

上一篇 / 下一篇  2012-03-01 16:37:15 / 个人分类:AutoIT实战

与文件下载对应的文件上传弹出框,同样也是非常不好处理的。下面介绍如何使用AutoIT解决这个问题。

AutoIT对于弹出框的处理原理其实都是一样的,只要能获取到窗口的句柄或者controlID就能搞定所有的操作了。而获取这些东西其实对于AutoIT而言是非常简单的。比如句柄,可以通过winList把所有的窗体的title名称和对应的句柄都列出来,根据title来找到窗体的句柄。controlID比较难获取,但是可以用AutoIT中的AdvancedMode替代(有点类似于QTP的描述性编程)。

下面以51testing个人头像设置为例,说明如何实现上传的自动化测试

进入51testing个人博客的管理页面后,选择“空间设置”,选择上传图片。

 

现在编写如下脚本:

$FileName=IniRead ( "config.ini", "ToolConfig", "FileName", "test.JPG" )

         

While 1

WinWaitActive("选择要上载的文件,通过: u.51testing.com","")

If WinExists("选择要上载的文件,通过: u.51testing.com") Then

ControlGetFocus("选择要上载的文件,通过: u.51testing.com")

ControlFocus ( "选择要上载的文件,通过: u.51testing.com", "", "" ) 

ControlFocus ( "选择要上载的文件,通过: u.51testing.com", "", "[CLASS:ComboBox; INSTANCE:1]" ) 

ControlSend("选择要上载的文件,通过: u.51testing.com", "", "[CLASS:ComboBox; INSTANCE:1]","桌面")

$y=ControlClick ( "选择要上载的文件,通过: u.51testing.com", "", "[CLASS:ComboBox; INSTANCE:1]")

Sleep(2000)

ControlFocus ( "选择要上载的文件,通过: u.51testing.com", "", "[CLASS:Edit; INSTANCE:1]" )

Send($FileName)

Sleep(2000)

$y=ControlClick ( "选择要上载的文件,通过: u.51testing.com", "打开", "[class:Button;instance:2]")

ExitLoop

EndIf

Wend

 

说明:

1类似于“[CLASS:ComboBox; INSTANCE:1]”这样的东西,就是AutoITAdvancedMode,一些情况下是可以替代controlID的。

2)不同于下载文件,这里做了一点改进,就是模拟用户去选择上传路径。

ControlFocus ( "选择要上载的文件,通过: u.51testing.com", "", "[CLASS:ComboBox; INSTANCE:1]" ) 

ControlSend("选择要上载的文件,通过: u.51testing.com", "", "[CLASS:ComboBox; INSTANCE:1]","桌面")

$y=ControlClick ( "选择要上载的文件,通过: u.51testing.com", "", "[CLASS:ComboBox; INSTANCE:1]")

首先是把焦点移到ComboBox下拉框上,然后发送“选择桌面”指令。发送完成之后并不会选择到“桌面”,仅仅是在ComboBox中输入了“桌面”文字。此时需要使用ControlClick去点击一下,才能真正进入到这个路径。

3)同样的,我也把这个脚本编译成了exe。可以在自己的博客管理中尝试一下。首先运行这个exe,然后点击“选择照片”等待脚本处理了。

FileUpload..zip(280 KB)


TAG:

Mr.南柯 引用 删除 bob123654   /   2013-01-25 13:46:01
感觉用不了
无花果果糖的个人空间 引用 删除 无花果果糖   /   2012-08-02 17:04:17
5
无花果果糖的个人空间 引用 删除 无花果果糖   /   2012-08-02 17:04:14
大侠,能解释一下“$FileName=IniRead ( "config.ini", "ToolConfig", "FileName", "test.JPG" )”中的config.ini和ToolConfig是什么吗,怎么来的
 

评分:0

我来说两句

Open Toolbar