vi_2010 发表于 2012-10-24 11:12:18

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:01

其实也不用你这么麻烦吧,其实还是Browser("creationtime:=1").GetROProperty("HWND")这句话他没取到NewTab 页的句柄,不用creationtime换成title或者其他属性去取到NewTab的句柄那样就不会关错了。

vi_2010 发表于 2012-10-24 13:04:09

我用msgbox输出testHWND是有获取到句柄的,我上面脚本的情况并不是关闭错误的问题,而是根本就关闭不了,它需要newtab页是当前页的情况下才能关闭掉

joykao 发表于 2012-10-24 14:20:21

你是获取到句柄了但是你知道你获取的是那个吗?你用SPY 看了NewTab 的句柄是什么了?你开了2个页面就会有2个句柄,我用句柄去操作页面从来就不需要再当前页

vi_2010 发表于 2012-10-25 12:46:40

我用spy看了一下,因为我是在同一个IE框口中打开两个一样的网站,用spy看句柄是一样的,我用了另一个方法去解决了,感谢你的回复,呵呵

joykao 发表于 2012-10-25 13:10:46

回复 5# vi_2010
:o:o我低能了,一个IE 下面开了不同的Tab页竟然句柄是一样的?看样子高速发展了。。。。

situjm 发表于 2012-10-27 12:55:32

可以把IE设为在新窗口中打开链接,而不是在新标签页中。这样可以避免很多问题。

西风一任秋 发表于 2013-4-2 11:21:58

可以把IE设为在新窗口中打开链接,而不是在新标签页中。这样可以避免很多问题。
situjm 发表于 2012-10-27 12:55 http://bbs.51testing.com/images/common/back.gif


的确是这样,IE8和IE9都有这样问题,找了一下没找到有激活的方法,只能设置为新开窗口并激活新开窗口来解决了

shandongdong 发表于 2013-5-18 14:21:56

我也碰到这种问题。期待高手来解决

Bianca_ 发表于 2014-10-3 19:28:51

vi_2010 发表于 2012-10-25 12:46
我用spy看了一下,因为我是在同一个IE框口中打开两个一样的网站,用spy看句柄是一样的,我用了另一个方法去 ...

用什么方法解决的?求解

xue_testing 发表于 2014-11-27 16:35:47

求解楼主是怎么解决的?
页: [1]
查看完整版本: QTP如何关闭IE9中的指定的newtab页