是第二天正式使用QTP,没有想到遇到IM聊天历史记录是用内嵌的EXPLOR做的,用QTP一录得到WinObject: Internet Explorer_Server完了,啥信息都得不到。我请教了同事,得到的信息是既然是Explorer的页面,应该通过Page的方向去查找,据说有人通过句柄可以把winObject转换为Browser,顺着这个方向去找。果然网上有人说这方面代码
hwnd = Window("Popup").GetROProperty("hwnd")
Msgbox Browser("hwnd:=" & hwnd).Exist(0)
Msgbox Browser("hwnd:=" & hwnd).Page("micclass:=page").Exist(0)
Browser("hwnd:=" & hwnd).Page("micclass:=page").WebButton("name:=Approve").Click
  一试 ,两个都报false,心凉了一半。再仔细看了一下,说提问的人自己也没有解决,说QTP版本问题。继续找也有说通过tools->Register New Browser Control一下有用,试了一下,也不知道咋用放弃。
  实在想不出方法了,不如换个窗体试试看。换到个人聊天窗体(原先是群聊天窗体),用QTP一抓,抓出来了,Page和WebElement都抓出来了,有点奇怪,但是毕竟是不同的窗体,回头再往群窗体上一用,结果也抓出来了。问题算是解决了,但是很灵异,为啥第一次抓,抓不到信息呢,而且试过好多次,难道和Register那玩意有关系。明天换台机器再试试看,问题算是解决了.代码记录如下
Set oDesc = Description.Create()
oDesc("micclass").Value = "WebElement"
oDesc("html tag").Value = "DIV"
oDesc("class").Value = "MsgHistory"
Set EleConlection = Window("test(群号:29855207)").Page("MsgHistory").ChildObjects(oDesc)
for i = 0 To EleConlection.Count - 1
print EleConlection(i).GetROProperty("innertext",1000)
Next