51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6010|回复: 21
打印 上一主题 下一主题

[原创] 求教:Browser("hwnd:=" & hwnd).Navigate

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-8-14 11:06:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在【51Testing丛书连载:(五十一)精通QTP——自动化测试技术领航】中“获取当前窗口的句柄”的实例运行中报以下错误:
******************************************************************************
无法标识对象 "[ Browser ]" (属于类 Browser)。验证此对象的属性与当前显示在应用程序中的对象是否匹配。

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

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

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

源代码如下:


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

'########通过获取的句柄控制浏览器窗口并跳转百度#####
Browser("hwnd:=" & hwnd).Navigate "http://www.baidu.com"   '这句报错!!!!!!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-10 17:57
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]测试团长

    2#
    发表于 2012-8-14 11:26:35 | 只看该作者
    我也试了下貌似是不行, LZ最好去问作者吧, 论坛上有一个专门解答该书问题的帖子:
    "2012年给力新作《精通QTP——自动化测试技术领航》试读以及答疑专用贴 "
    链接为:http://bbs.51testing.com/viewthr ... p;extra=&page=1
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    3#
    发表于 2012-8-14 12:50:09 | 只看该作者
    '#######启动浏览器########
    systemutil.Run "iexplore.exe"

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

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

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2012-8-14 13:41:07 | 只看该作者
    回复 3# joykao


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

    使用道具 举报

    该用户从未签到

    5#
    发表于 2012-8-14 13:59:39 | 只看该作者
    '#######启动浏览器########
    systemutil.Run "iexplore.exe"
    '#######创建API  Extern对象##########
    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 不一样
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2012-8-14 14:13:30 | 只看该作者
    学习下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2012-8-14 14:32:06 | 只看该作者
    回复 5# cellule


        是不一样,所以这个问题还是没解决到。你有解决办法么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2012-8-14 15:26:10 | 只看该作者
    回复 7# 紫藤萝mary

    你用我的打印看看 是不是每次,取Dll的hwnd 是唯一固定的,然后后面取web的是不固定的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2012-8-14 15:54:47 | 只看该作者
    回复 8# cellule


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

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    10#
    发表于 2012-8-14 17:08:12 | 只看该作者
    回复 4# 紫藤萝mary
    你的句柄取错了吧。。能把你的代码贴一下吗?

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

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2012-8-14 18:24:05 | 只看该作者
    回复 10# joykao


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

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


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

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2012-8-14 18:26:48 | 只看该作者
    回复 10# joykao


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

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

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    13#
    发表于 2012-8-14 20:25:59 | 只看该作者
    肯定错啊。。。必须的。。。
    '你打开的一个的页面应该是你设置的主页,或者空页面
    我试了下没问题
    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"
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2012-8-15 09:39:59 | 只看该作者
    回复 13# joykao


        常规运行错误。

    "Browser("micClass:=Browser").OpenNewTab"。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    15#
    发表于 2012-8-15 10:10:05 | 只看该作者
    回复 14# 紫藤萝mary
    是你IE设置有问题,你可以重装下你的IE, 装完记得把BHO manager class 启动下 再执行脚本
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2012-8-15 11:14:31 | 只看该作者
    回复 15# joykao


        ok咯。万分感谢!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    17#
    发表于 2012-8-15 11:16:56 | 只看该作者
    回复 15# joykao

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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2012-8-15 12:50:21 | 只看该作者
    我也是ie,使用一切正常,肯定是好的,首页为空,也执行不了这段话,录其它web都是好的,所以不可能是bhomanager有问题。这个怎么看
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    19#
    发表于 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"
    这个执行的是没问题的吧?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2012-8-16 09:51:14 | 只看该作者
    嗯,我是win7+ie8+qtp11,也是执行有问题
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-8 21:52 , Processed in 0.087228 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表