split和unbound函数的组合

上一篇 / 下一篇  2011-03-09 13:25:15 / 个人分类:QTP学习

由于QTP不识别聊天窗口中的消息显示控件,于是所有的消息获取的text为:

33330000:[2011-3-9 13:29:19]
即时消息

所以,如果想要获取消息内容,可用split函数和unbound函数组合来实现,注:此处只能获取最后一段消息,故想获取输入的全部消息,消息内容不能回车。如下:

Function CheckSMSReceipt()
  wait 0,100
  s2=Dialog("Lemon").WinObject("WinObject").GetROProperty("text",value)
  sr=split( s2,vbCrLf)
  If instr(1,sr(ubound(sr)-1),DataTable("发送内容", dtGlobalSheet)) > 0 Then
      Reporter.ReportEvent micPass,"短信发送内容通过","预期及实际短信内容都为"&DataTable("发送内容", dtGlobalSheet)
  else
      Reporter.ReportEvent micFail,"短信发送内容失败","预期短信内容为: "&DataTable("发送内容", dtGlobalSheet) &"实际短信内容为:"& sr(ubound(sr)-1)
 End If
End Function

split(s2,vbCrLf)解析:vbCrLf为回车。此举意思是把s2的值,以回车为标志划分开,储存为数组。

ubound(sr)解析:得到sr的最大下标。由于在此消息发送框中,消息结束处也有回车,故数组最后为一空值,实际需要的消息内容为ubound(sr)-1。sr(ubound(sr)-1)表示数组的倒数第二个值,即需要的消息内容。

instr(1,字符串1,字符串2):从第一个位置开始查找,返回字符串2在字符串1中的位置。用来对比消息内容是否正确。


TAG:

 

评分:0

我来说两句

Open Toolbar