以后不在此处更新日志了,欢迎测友到新窝找我: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自动化测试

 

评分:0

我来说两句

Open Toolbar