51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4191|回复: 7
打印 上一主题 下一主题

[原创] 有意思的现象,关于QTP录制打开ie的时机

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-9-19 11:12:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
先不开QTP,直接打开ie,输入http://bbs.51testing.com/default.php
打开51论坛了
然后打开QTP,用spy去识别页面,发现除了browser、page和winobject以外,web对象全部无法识别!
如图所示:

不要动QTP和当前的ie,然后新开一个ie,也输入http://bbs.51testing.com/default.php
又打开51论坛了(管理员:为什么要说又?)
然后再用spy去识别页面,会发现web对象都识别出来了,而且原来那个web对象识别不出来的ie里面也可以识别出来了
如图所示:

没有深入探究,猜测可能是QTP启动之后,再打开ie会触发某些模块的加载……而单独打开ie又是不加载的东东……
再次打开ie,打开51论坛(管理员:为什么又不说又?那我为什么说又不说又?到底是重复了该说又,还是不重复说又?[email=!@#$%]!@#$%[/email]……)
输入这篇东西,ok,试验结束
附件:
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

8#
发表于 2009-9-12 23:05:47 | 只看该作者

回复 1# 的帖子

碰巧有空看了下这个问题,下面是答复,希望有帮助:

为何无法录制QTP启动前的浏览器
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-9-20 15:53:17 | 只看该作者

回复 6# 的帖子

你的意思也就是说排除了那个进程是explorer.exe了?也确定那个class是在IE里Enable的?

我回复时候的最后一句话,可能代表了原因:跟BHO有关,QTP是通过BHO来获取浏览器页面元素的。本来获取测试对象在Windows Object和Web Browser之间方式就存在区别,由于QTP是把两者集成到一个工具上了,所以通用的做法应该是得到对象类后对该对象做一次判断:如果是iexplorer就用另一种方式获取页面元素的值;但QTP的Spy采取了另外一种做法,利用BHO直接跟Microsoft Internet Explorer绑定。于是,这也解释了为何QTP Spy工具在支持Microsoft Internet Explorer页面元素的同时却对Firefox的页面元素支持不同步的部分原因。

至于为何Internet Explorer在QTP Spy启动前运行会使得BHO同Spy之间的信息交互出现问题,需要更详细的信息,可惜我手头没环境。你可以试试
1.枚举
  1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects下是否有重复项
复制代码
2.重新注册
  1. regsvr32 /u BHOManager.dll
  2. regsvr32 /s BHOManager.dll
复制代码
国外论坛上也有如果无法获取页面元素,在QTP Spy启动后运行IE是一项workaround,据我现在的理解,这可能是QTP Spy自身的一个bug。不知晓你会debug、会写BHO吗? 都不会的话对你来说准确诊断这问题可能有问题。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-9-20 14:18:57 | 只看该作者

回复 5# 的帖子

呵呵,这位仁兄大概没看明白我写的意思
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-9-19 23:44:31 | 只看该作者

回复 1# 的帖子

你能重复先打开ie的那个场景吗?重复后去 Windows 任务管理器 里面看看,当前的IE是iexplorer.exe还是explorer.exe:
打开任务管理器->在“应用程序”面板中选中你打开的页面->右键,选择“转到进程”

VBS代码:
  1. Set IE = CreateObject ("InternetExplorer.Application")
复制代码
打开的就是explorer.exe

如果这个不行,就去验证BHOManager Class在IE里是开启的。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-9-19 15:34:23 | 只看该作者
我在实际测试中也发现了此问题,刚开始没有找到原因,第2次发现是与QTP和浏览器的启动先后顺序有关。我感觉2楼的回答有道理。但不知道有没有官方的解释。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-9-19 14:39:20 | 只看该作者

回复 2# 的帖子

是什么控件呢?bhomanager吗?
这个作为加载项是安装了QTP以后IE中就存在的,怎么开IE都会有
不是这个又是哪个呢?
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2008-9-19 11:53:54 | 只看该作者

QTP启动后,当手动打开的IE才会加载控件进去。
如果QTP没开,手动打开的IE是不会加载进去的。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-22 18:14 , Processed in 0.098217 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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