紫藤萝mary 发表于 2012-8-14 11:06:45

求教:Browser("hwnd:=" & hwnd).Navigate

我在【51Testing丛书连载:(五十一)精通QTP——自动化测试技术领航】中“获取当前窗口的句柄”的实例运行中报以下错误:
******************************************************************************
无法标识对象 "[ Browser ]" (属于类 Browser)。验证此对象的属性与当前显示在应用程序中的对象是否匹配。

第 (11) 行: "Browser("hwnd:=" & hwnd).Navigate "http://www.baidu.com""。

提示: 如果应用程序中的对象已更改,维护运行模式可以
帮助您识别和更新库中的步骤和/或对象。
******************************************************************************

请问这个问题怎么解决呢?

源代码如下:


'#######启动浏览器########
systemutil.Run "iexplore.exe"
'#######创建APIExtern对象##########
Extern.Declare micHWnd,_
"GetForegroundWindow", "user32.dll", "GetForegroundWindow"
'######使用WIN32 API获取窗口的句柄######
hwnd = Extern.GetForegroundWindow()

'########通过获取的句柄控制浏览器窗口并跳转百度#####
Browser("hwnd:=" & hwnd).Navigate "http://www.baidu.com"   '这句报错!!!!!!!!

shingo0109 发表于 2012-8-14 11:26:35

我也试了下貌似是不行, LZ最好去问作者吧, 论坛上有一个专门解答该书问题的帖子:
"2012年给力新作《精通QTP——自动化测试技术领航》试读以及答疑专用贴 "
链接为:http://bbs.51testing.com/viewthread.php?tid=526210&extra=&page=1

joykao 发表于 2012-8-14 12:50:09

'#######启动浏览器########
systemutil.Run "iexplore.exe"

'######取到当前页面的句柄######
HWND = Browser("XXXXX").GetROProperty("hwnd")

'########通过获取的句柄控制浏览器窗口并跳转百度#####
Browser("hwnd:=" & HWND ).Navigate "http://www.baidu.com"

紫藤萝mary 发表于 2012-8-14 13:41:07

回复 3# joykao


    我用你的方法试了,程序时能跑通,但是没有跳转到百度页面,浏览器还是停留在blank。

cellule 发表于 2012-8-14 13:59:39

'#######启动浏览器########
systemutil.Run "iexplore.exe"
'#######创建APIExtern对象##########
Extern.Declare micHWnd,_
"GetForegroundWindow", "user32.dll", "GetForegroundWindow"
'######使用WIN32 API获取窗口的句柄######
hwnd = Extern.GetForegroundWindow()

print hwnd

'########通过获取的句柄控制浏览器窗口并跳转百度#####
a=Browser("micClass:=Browser").GetROProperty ("hwnd")
print a
Browser("hwnd:=" & hwnd).Navigate "http://www.baidu.com"

你看下 2个打印信息 就知道2个hwnd 不一样

louqqson008 发表于 2012-8-14 14:13:30

学习下

紫藤萝mary 发表于 2012-8-14 14:32:06

回复 5# cellule


    是不一样,所以这个问题还是没解决到。你有解决办法么?

cellule 发表于 2012-8-14 15:26:10

回复 7# 紫藤萝mary

你用我的打印看看 是不是每次,取Dll的hwnd 是唯一固定的,然后后面取web的是不固定的

紫藤萝mary 发表于 2012-8-14 15:54:47

回复 8# cellule


    嗯,正如你所说,dll打印的每次都不变,web的每次都在变。但是用web的hwnd程序不会报错,但是也打不开百度页面。这是什么原因呢?

joykao 发表于 2012-8-14 17:08:12

回复 4# 紫藤萝mary
你的句柄取错了吧。。能把你的代码贴一下吗?

如果你想哪个页面跳转就取哪个页面的句柄,按你说的应该是这样写
HWND = Browser("name:=New Tab").GetROProperty("hwnd")

紫藤萝mary 发表于 2012-8-14 18:24:05

回复 10# joykao


    还是报错:
无法标识对象 "[ Browser ]" (属于类 Browser)。验证此对象的属性与当前显示在应用程序中的对象是否匹配。

第 (9) 行: "hwnd = Browser("name:=Browser").GetROProperty("hwnd")"。


我的代码:
'#######启动浏览器########
systemutil.Run "iexplore.exe"
'#######创建APIExtern对象##########
'Extern.Declare micHWnd,"GetForegroundWindow", "user32.dll", "GetForegroundWindow"
'########通过获取的句柄控制浏览器窗口并跳转百度#####
'hwnd = Extern.GetForegroundWindow()
hwnd = Browser("name:=Browser").GetROProperty("hwnd")
Browser("hwnd:=" & hwnd).Navigate "http://www.baidu.com"

紫藤萝mary 发表于 2012-8-14 18:26:48

回复 10# joykao


还是报错:
无法标识对象 "[ Browser ]" (属于类 Browser)。验证此对象的属性与当前显示在应用程序中的对象是否匹配。
第 (9) 行: "hwnd = Browser("name:=Browser").GetROProperty("hwnd")"。

我的代码:
'#######启动浏览器########
systemutil.Run "iexplore.exe"
'#######创建APIExtern对象##########
'Extern.Declare micHWnd,"GetForegroundWindow", "user32.dll", "GetForegroundWindow"
'########通过获取的句柄控制浏览器窗口并跳转百度#####
'hwnd = Extern.GetForegroundWindow()
hwnd = Browser("name:=Browser").GetROProperty("hwnd")
Browser("hwnd:=" & hwnd).Navigate "http://www.baidu.com"

joykao 发表于 2012-8-14 20:25:59

肯定错啊。。。必须的。。。
'你打开的一个的页面应该是你设置的主页,或者空页面
我试了下没问题:lol
Systemutil.Run "iexplore.exe"
Browser("micClass:=Browser").OpenNewTab
HWND = Browser("name:=New Tab").GetROProperty("hwnd")
Browser("micClass:=Browser","hwnd:=" &HWND ).Navigate "http://www.baidu.com"

紫藤萝mary 发表于 2012-8-15 09:39:59

回复 13# joykao


    常规运行错误。

"Browser("micClass:=Browser").OpenNewTab"。

joykao 发表于 2012-8-15 10:10:05

回复 14# 紫藤萝mary
是你IE设置有问题,你可以重装下你的IE, 装完记得把BHO manager class 启动下 再执行脚本

紫藤萝mary 发表于 2012-8-15 11:14:31

回复 15# joykao


    ok咯。万分感谢!!!

joykao 发表于 2012-8-15 11:16:56

回复 15# joykao

不是吧,我也是IE8 啊。英文版的,那段脚本真心没问题哇:Q我跑了N遍了。。
你的IE 默认打开的是什么页面是不是有问题啊?

jacksboy 发表于 2012-8-15 12:50:21

我也是ie,使用一切正常,肯定是好的,首页为空,也执行不了这段话,录其它web都是好的,所以不可能是bhomanager有问题。这个怎么看

joykao 发表于 2012-8-16 09:39:09

回复 18# jacksboy


哎。。。。还是去问书的作者吧。。。。。QTP 论坛的一位斑竹就是你们用的书的作者

Systemutil.Run "iexplore.exe"
Browser("micClass:=Browser").OpenNewTab
HWND = Browser("name:=New Tab").GetROProperty("hwnd")
Browser("micClass:=Browser","hwnd:=" &HWND ).Navigate "http://www.baidu.com"
这个执行的是没问题的吧?

robinpipi 发表于 2012-8-16 09:51:14

嗯,我是win7+ie8+qtp11,也是执行有问题
页: [1] 2
查看完整版本: 求教:Browser("hwnd:=" & hwnd).Navigate