51Testing软件测试论坛

标题: QTP如何关闭IE9中的指定的newtab页 [打印本页]

作者: vi_2010    时间: 2012-10-24 11:12
标题: QTP如何关闭IE9中的指定的newtab页
我的脚本是这样的
SystemUtil.Run "http://www.51testing.com"  
Browser("micClass:=Browser").Navigate "http://bbs.51testing.com"   
Browser("micClass:=Browser").Page("micClass:=Page").Sync:wait 1
Browser("micClass:=Browser").OpenNewTab:wait 1
Dim testHWND
testHWND = Browser("creationtime:=1").GetROProperty("HWND")
Browser("creationtime:=1").Navigate "http://bbs.51testing.com"
Browser("creationtime:=1").Page("micClass:=Page").Sync:wait 2
Browser("hwnd:="&testHWND).close
Browser("creationtime:=0").Refresh:wait 3
脚本运行后就一直在提示“对象不可见  Browser("hwnd:="&testHWND).”
我看了一下脚本运行过程中,新open的newtab页一直不是当前页状态,如果出错的时候重试,把newtab页点击一下,它就close了,有没有什么方法是可以指定某个tab页为当前页,激活状态,希望高手给予指教,谢谢
作者: joykao    时间: 2012-10-24 11:40
其实也不用你这么麻烦吧,其实还是Browser("creationtime:=1").GetROProperty("HWND")这句话他没取到NewTab 页的句柄,不用creationtime换成title或者其他属性去取到NewTab的句柄那样就不会关错了。
作者: vi_2010    时间: 2012-10-24 13:04
我用msgbox输出testHWND是有获取到句柄的,我上面脚本的情况并不是关闭错误的问题,而是根本就关闭不了,它需要newtab页是当前页的情况下才能关闭掉
作者: joykao    时间: 2012-10-24 14:20
你是获取到句柄了但是你知道你获取的是那个吗?你用SPY 看了NewTab 的句柄是什么了?你开了2个页面就会有2个句柄,我用句柄去操作页面从来就不需要再当前页
作者: vi_2010    时间: 2012-10-25 12:46
我用spy看了一下,因为我是在同一个IE框口中打开两个一样的网站,用spy看句柄是一样的,我用了另一个方法去解决了,感谢你的回复,呵呵
作者: joykao    时间: 2012-10-25 13:10
回复 5# vi_2010
我低能了,一个IE 下面开了不同的Tab页竟然句柄是一样的?看样子高速发展了。。。。
作者: situjm    时间: 2012-10-27 12:55
可以把IE设为在新窗口中打开链接,而不是在新标签页中。这样可以避免很多问题。
作者: 西风一任秋    时间: 2013-4-2 11:21
可以把IE设为在新窗口中打开链接,而不是在新标签页中。这样可以避免很多问题。
situjm 发表于 2012-10-27 12:55



的确是这样,IE8和IE9都有这样问题,找了一下没找到有激活的方法,只能设置为新开窗口并激活新开窗口来解决了
作者: shandongdong    时间: 2013-5-18 14:21
我也碰到这种问题。期待高手来解决
作者: Bianca_    时间: 2014-10-3 19:28
vi_2010 发表于 2012-10-25 12:46
我用spy看了一下,因为我是在同一个IE框口中打开两个一样的网站,用spy看句柄是一样的,我用了另一个方法去 ...

用什么方法解决的?求解
作者: xue_testing    时间: 2014-11-27 16:35
求解楼主是怎么解决的?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2