以后不在此处更新日志了,欢迎测友到新窝找我:http://www.wuchuanhu.cn/
使用AutoIT测试系统登录实例八(COM事件接口的应用)
上一篇 /
下一篇 2012-02-12 23:14:13
/ 个人分类:AutoIT实战
ObjEvent函数有两种调用方式,前面介绍的第一种调用方式,第二种调用方式为:
ObjEvent ( $ObjectVar, "functionprefix" [, "interface name"] )
第一个参数$ObjectVar是需要监听的对象。第二个参数functionprefix是接收到事件之后触发的函数名称前缀。第三个函数[, "interface name"]是监听对象所对应的事件接口名称,比如说IE对象的事件接口是DWebBrowserEvents2。DWebBrowserEvents2事件接口可以接收多种事件,包括下载、退出、标题变化等。详细的列表可以查看http://technet.microsoft.com/zh-cn/library/ms850276(en-us).aspx。这里需要说明的是第二个参数"functionprefix" 完整的函数的名称应该是"functionprefix"+DWebBrowserEvents2中的某个事件方法名称。比如IE退出事件,则ObjEvent触发的函数名称应该是:"functionprefix"+OnQuit。
#Include <IE.au3>
$testURL="http://www.baidu.com"
$OIE = CreateIE($testURL)
$oErrorHandler=ObjEvent($OIE,"_IEEvent_","DWebBrowserEvents2")
$doc = _IEDocGetObj($OIE)
$title=$doc.title
Send("!+{SPACE}+X")
Sleep(6000)
CloseIE($OIE)
#forceref $oErrorHandler
Func CreateIE($URL)
$OIE = _IECreate($URL,0,1,1,0)
Return $OIE
If @error Then MsgBox(1,"错误","启动IE失败")
EndFunc
Func CloseIE($OIE)
$IsClose=_IEQuit($OIE)
If $IsClose<>1 Then
ProcessClose($OIE)
EndIf
EndFunc
Func _IEEvent_OnQuit()
MsgBox(1,"提示","页面被关闭")
EndFunc
上述脚本在打开一个IE窗口之后,如果在自动关闭之前被人为的点击关闭按钮关闭的时候,会触发_IEEvent_OnQuit函数。
ObjEvent这第二种方式严格的来讲并不是一个有效的错误或异常拦截的手段,比如这段代码中,如果不是人为的点击关闭按钮,而是通过代码中CloseIE方法关闭的话,是不会触发_IEEvent_OnQuit()这个方法的,并不能起到监听所有关闭的事件。
收藏
举报
TAG:
aslandhu
autoit
Autoit
AutoIT
autoIT
web自动化测试