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

AutoIT自动化之IE安全提示信息处理

上一篇 / 下一篇  2012-03-01 10:18:35 / 个人分类:AutoIT实战

前天有幸阅览了国内一家大型互联网公司的某位大侠的一篇博文,文中提到AutoIT不适合做Web自动化测试,只能用来辅助做Web自动化测试。我不以为然。AutoIT其实做Web自动化测试的能力非常的强,它可以像Selenium一样往页面里注入JS进行操作,也可以像Waitr一样定位页面对象。其实国外已经有不少的公司把AutoIT作为实现自动化测试工具的利器,国内而言,要充分认识到这个Windows环境下最强大的脚本语言应用到自动化测试中的价值还需要一段时间。

Web自动化测试中会经常遇到一些弹窗,IE提示信息等一般测试工具较难解决的问题,很多测试人员都会选择使用AutoITActive版本AutoItX来解决。而这也就是AutoIT非常强大的一个例证。下面说明一下AutoIT是如何解决IE安全提示信息的。

在下载文件的时候,取决于IE设置,往往会出现类似于截图中的这种提示框。有的时候即使IE设置里面设置了不提示,但脚本一跑起来还是莫名其妙的出现这样的提示框。没有办法,只有求助于AutoIT了。

$tip=ControlGetText ( "[CLASS:IEFrame]","xxxxxx- Windows Internet Explorer", "[CLASS:Button; INSTANCE:1]")

If $tip=="为帮助保护您的安全,Internet Explorer已经阻止从此站点下载文件到您的计算机。单击此处查看选项..." Then

ControlClick("[CLASS:IEFrame]","xxxxxxx- Windows Internet Explorer", "[CLASS:Button; INSTANCE:1]","left")

Send("d")

EndIf

      很简单的几句脚本,就能搞定这样的问题。当然这是在AutoIT自动化测试过程中可以用的,但如果换做了其他的测试工具比如QTP或者Selenium呢。AutoItX是个不错的选择,除此之外,还有一个办法,就是把上面这段脚本编译成exe。当QTP或者Selenium中需要处理这样的情况的时候,就启动这个exe处理。以下是这个exe的脚本。

While 1

WinWaitActive("XXXXXXX - Windows Internet Explorer","")

If WinExists("XXXXXXX- Windows Internet Explorer") Then

       $tip=ControlGetText ( "[CLASS:IEFrame]","XXXXXX - Windows Internet Explorer", "[CLASS:Button; INSTANCE:1]")

    If $tip=="为帮助保护您的安全,Internet Explorer已经阻止从此站点下载文件到您的计算机。单击此处查看选项..." Then

          ControlClick("[CLASS:IEFrame]","XXXXXXXX - Windows Internet Explorer", "[CLASS:Button; INSTANCE:1]","left")

        Send("d")

       EndIf

              ExitLoop

EndIf

WEnd

 

这个exe启动后会一直运行,直到它检测到有title名为"XXXXXXX - Windows Internet Explorer"的页面,然后去处理这个页面的安全提示框。

后面将继续介绍如何使用AutoIT解决上传下载功能自动化测试的场景。


TAG:

 

评分:0

我来说两句

Open Toolbar