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

AutoIT自动化之下载文件弹出框处理

上一篇 / 下一篇  2012-03-01 13:42:49 / 个人分类:AutoIT实战

文件下载与上传也是Web自动化测试中经常需要处理的,相比AutoIT一般的测试工具似乎处理的效果都不太理想。下面从脚本入手,看看AutoIT是如何处理文件下载的。

 

While 1

$var=WinList()

 

(这段脚本的作用是,获取当前正在运行的窗口列表,根据列表来找到相应的窗口)

 

WinWaitActive("文件下载","")

(以我的博客为例,进入

http://www.51testing.com/index.php?uid-194902-action-viewspace-itemid-248642点击下载附件,会弹出将要处理的提示框

 

If WinExists("文件下载") Then

ControlGetFocus("文件下载")

ControlFocus ( "文件下载", "", "" ) 

ControlFocus ( "文件下载", "保存(&S)", "[class:Button;instance:2]")

Sleep(2000)

ControlClick ( "文件下载", "保存(&S)", "[class:Button;instance:2]","left",1)

WinWaitActive("另存为")

ControlGetFocus("另存为")

ControlFocus ("另存为", "", "" ) 

 $text=IniRead ( "config.ini", "ToolConfig", "Config.ini", "test" )

 

(这里是读取配置文件,从中获取保存文件时,对文件命名的新名称)

 

ControlSend("另存为","","[class:Edit;instance:1]",@DesktopDir&"\"&$text)

Sleep(2000)

ControlFocus ("另存为", "保存(&S)", "[class:Button;instance:2]")

ControlClick ("另存为", "保存(&S)", "[CLASS:Button; INSTANCE:2]" ) 

Sleep(2000)

$var=WinList("另存为")

If $var[0][0]>1 Then

  WinWaitActive("另存为")

  ControlGetFocus("另存为")

  ControlFocus ("另存为", "", "" ) 

  ControlFocus ("另存为", "(&Y)", "[class:Button;instance:1]")

  ControlClick ("另存为", "(&Y)", "[CLASS:Button; INSTANCE:1]" ) 

  EndIf

ExitLoop

EndIf

 

(这段脚本的作用是关闭保存文件时,当文件已经存在的情况下,出现的提示框。)

 

Wend

 

执行这段脚本之后,上面截图中显示的那个文件保存框就会被处理。现在已经将这段脚本编译成了exe,可下载附件进行测试。先进入上面提到的链接,再启动这个exe,点击附件下载,当弹出文件保存框的时候,等待一下观察保存框是否被关闭。

注意:AutoIT编写的exe,一些杀毒软件经常误报为病毒(鄙视360),如果提示存在木马,点击添加信任再执行即可。如果不放心,可以自行编译附件中的au3脚本。

FileSaver.zip(281 KB)


TAG: aslandhu autoit Autoit AutoIT autoIT

引用 删除 暖暖阳光   /   2016-01-08 18:04:23
My空间 引用 删除 fanzhiyu   /   2014-01-08 14:00:46
请教个问题:在本机执行这个下载脚本时,停在下载页面了(不进行下载了),但手工下载时却可以成功下载,是什么原因呢?多谢指导
 

评分:0

我来说两句

Open Toolbar