google搜索 51Testing站内搜索                    软件测试门户 | 软件测试培 训 | 文章资料精选 | 软件测试论坛 | 软件测试博客 | 测试招聘求职 
打印

QTP无法录制某些控件的操作的解决方法

本主题由 testing 于 2008-8-10 16:17 解除置顶

QTP无法录制某些控件的操作的解决方法


经常有朋友问:QTP无法识别某些自制 的控件或无法录制某些控件的操作,我怎么解决这个问题? 我想解决方法有下面几个:

1, 添加相应的Add-in是解决此类问题的第一选择,如果有相应的Add-in的话。例如如果是测试 Java 类的程序,就要加载 Java Add-in。
    你安装好 QTP后,有三个Add-in ( ActiveX、Visual Basic和 Web)就被装载了。除此以为,QTP 8.2 版本还可以装载的 Add-in 有  QuickTest Professional  Java 6.5 Add-in 、QuickTest Professional Oracle 6.5 Add-in 、QuickTest Professiona Siebel 8.0  Add-in 和 QuickTest Professional Terminal Emulator 8.0 Add-in。 (每个版面的QTP可以加载的 Add-in 可以在相应的QTP_Install_Guide.pdf 和 Main_Users_Guide.pdf 中找到。)

2,把不能识别的对象设置为虚拟对象(Virtual Object)
     依次点击 QTP 的 “Tools” ---> "Virtual Objects"--->"New Virtual Object...", 就会出现 Virtual Object Wizard 对话框,你根据Wizard  的指引,就可以把添加一些支持的不好的控件设置成虚拟控件,也就添加到对象库了。
复制内容到剪贴板
代码:
   在QTP 8.2 添加虚拟对象的具体操作步骤是:
       1,  依次点击 Tools ---> Virtual Objects ---> New Virtual Object…,打开虚拟对象向导,点击Next;
       2,  选择Class为button,点击Next;
       3,  点击标记对象按钮;
       4,   选择要操作的对象区域,点击Next (对象区域就是你要操作的那个对象);
       5,    默认,点击Next;
       6,   完成。
添加虚拟对象后可以解决问题实例有:
   http://www.17testing.com/bbs/viewthread.php?tid=976&extra=page%3D1&page=1
   http://bbs.51testing.com/thread-60897-1-6.html

3,把QTP不能录制的对象手工添加到object repository, 然后写代码实现 需要的操作。详细信息请参考:
    http://bbs.51testing.com/thread-45142-1-6.html  中的#7   

4,针对特殊问题有特殊的解决方法。如果不能识别的控件是用VC做的,那么你可以自己写一个动态链接库,然后让QTP去调用它。至于QTP 如何调用动态链接库,请看附件。

  如果谁还有好方法,请也说出来。大家一起讨论一下。我坚信这里问题一定能得到解决!胜利一定是属于我们的!sdlkfj3 sdlkfj3 sdlkfj3

[ 本帖最后由 walker1020 于 2007-2-1 23:39 编辑 ]
附件: 您所在的用户组无法下载或查看附件
实践是检验真理的唯一标准。

TOP

补充一点


Object Spy 是 QTP 用來查看、监视 GUI object 属性的工具。通过Object Spy 你是无法把对象添加到 对象库的。
实践是检验真理的唯一标准。

TOP

强烈支持斑竹!!!
Just doing it!Nothing is impossible!!

TOP

不错,支持中........

TOP

另外一种解决方法


曾经有朋友问:“用Object Spy时识别到是ActiveX 对象,在Add Object时也能识别是ActiveX对象,并且识别出来是windows media player控件,但就是不能加到对象库。”

针对此问题,如果需要把对象添加到对象库里面去,我提供另外一种解决方法:
依次点击 “Tools" ---> "Object Repostory...", 在出现的Object Repository 对话框中,按下 Add Objects 按钮,将应用软件的 GUI Object 加入到 Object Repository中 就可以了。具体操作请看附件的《什么是 Keyword-Driven Testing 》。 在此向 oldsidney 表示感谢,因为是他的文章启发了我,让我想到了这个方法。 大师就是大师呀,不服不行呀。呵呵!sdlkfj3
附件: 您所在的用户组无法下载或查看附件
实践是检验真理的唯一标准。

TOP

walker1020


如果用这种方法去识别的话只能在当前脚本有效,如果打开一个新的,就没有了,还必须实际识别一下
所以还是应该通过这种方式来识别的Tools ---> Virtual Objects ---> New Virtual Object

TOP

引用:
原帖由 qd_pudding 于 2006-8-31 16:36 发表
如果用这种方法去识别的话只能在当前脚本有效,如果打开一个新的,就没有了,还必须实际识别一下
所以还是应该通过这种方式来识别的Tools ---> Virtual Objects ---> New Virtual Object
谢谢qd_pudding的提醒和补充! 虚心向你学习!
实践是检验真理的唯一标准。

TOP

我现在也被这问题困扰,谢谢,我按以上所说的方法尝试一下。

TOP


我也发过一些类似的贴子。
都是关于QTP无法识别的问题。
今天没在公司,看到你的贴子,很有想法。
只可惜不能实践,等到周一我一定试试。。

TOP

出错了


我用New Virtual Object...新建一个表格,36行9列。选中区域后点下一步,最后完成出现一个提示:

This operation cannot be performed.For further help please contact support.

点确定后,再点到QTP就没有反应了。
用Alt+Tab时,QTP也没有在列表中。

  请问可能原因是什么啊?

TOP

谢谢版主!


按照版主所讲的,的确是有效!
我是测试java应用程序的时候遇到了一些这样的问题!一般情况下:JtextFiled,JTree这样的控件不能识别!一直提示:“对象属性不能匹配”,设置成虚拟对象以后的确可以!但是还是无法添加到对象库中,“qd_pudding”说的对!

TOP

按照Tutorial_oldsidney_cn.pdf 练习 QTP时,遇到问题!


上网助手等插件都卸载掉了,在TOOLs> Option > WEB>Page/Fram Options.., 选择 Different object descriptions,又试过一次还是录制不了文本框、按钮。我也试过用object SPY和Virtua objectl了,可是还是不行呀!
各位高手,请指点。不知道是不是还有什么会影响其录制呢?
一起学习

TOP

值得学习


好文章,值得推荐和学习!

这些方法和可能是初学者,逐步深入时可能会遇到的问题。

在这里可以找到解决方法,顶一顶,看了不顶就吃亏了。

TOP

我还是录制不了控件


我按班主的方法,装了 QuickTest Professional  Java 6.5 Add-in 、QuickTest Professional Oracle 6.5 Add-in ,但是,录制脚本后再运行,还是会出现无法识别控制的提示,麻烦给于指导,十分感谢,。

[ 本帖最后由 denty 于 2006-9-26 18:01 编辑 ]
附件: 您所在的用户组无法下载或查看附件

TOP

好贴,支持ing

TOP

引用:
原帖由 denty 于 2006-9-26 17:07 发表
我按班主的方法,装了 QuickTest Professional  Java 6.5 Add-in 、QuickTest Professional Oracle 6.5 Add-in ,但是,录制脚本后再运行,还是会出现无法识别控制的提示,麻烦给于指导,十分感谢,。
根据错误提示,这应该是脚本的某行语句有问题。 QTP运行到脚本的哪一行时出现这个Run  Error 的错误信息?最好把你的脚本发送上来,这样我们好帮助你解决问题。

提示:我怀疑出错的这行代码是你自己写的吧。如果你用到了某个函数,你是不是函数的参数没有写对? 还是漏写了括号?
实践是检验真理的唯一标准。

TOP

我的脚本如下:
附件: 您所在的用户组无法下载或查看附件

TOP

麻烦大家帮我看一下,真的很感谢/我看是日期的选择框有问题,不知道为什么不能运行通过。

TOP

上面可能看不清楚,这个才清楚:
Browser("用户登录").Page("用户登录").WebEdit("loginName").Set "test"
Browser("用户登录").Page("用户登录").WebEdit("loginPassword").SetSecure "451cc72e23ede933bdb9747662e5"
Browser("用户登录").Page("用户登录").Image("login").Click 20,24
Browser("用户登录").Page("管理平台框架123121.0").Frame("left").WebElement("定购关系 查询").Click
Browser("用户登录").Page("管理平台框架123121.0").Frame("left").Link("包月业务定购关系查询").Click
Browser("管理平台框架123121.0").Page("管理平台框架123121.0").Frame("main").WebEdit("phoneNum").Set "13929550934"
Browser("管理平台框架123121.0").Page("管理平台框架123121.0").Frame("main").WebButton("查询").Click
Browser("管理平台框架123121.0").Page("管理平台框架123121.0").Frame("top").Link("使用记录查询").Click
Browser("管理平台框架123121.0").Page("管理平台框架123121.0").Frame("left").WebElement("使用记录 查询").Click
Browser("管理平台框架123121.0").Page("管理平台框架123121.0").Frame("left").Link("使用业务记录查询").Click
Browser("管理平台框架123121.0").Page("管理平台框架123121.0").Frame("main_2").Image("显示日历").Click
Browser("管理平台框架123121.0").Window("日期选择 -- 网页对话框").Page("日期选择").WebElement("1").Click
Browser("管理平台框架123121.0").Page("管理平台框架123121.0").Frame("main_2").WebEdit("phoneNum").Set "13929550934"
Browser("管理平台框架123121.0").Page("管理平台框架123121.0").Frame("main_2").WebButton("查询").Click
Browser("管理平台框架123121.0").Page("管理平台框架123121.0").Frame("main_2").WebButton("查询").Click
Browser("管理平台框架123121.0").Page("管理平台框架123121.0").Frame("left").Link("退出系统").Click
Browser("用户登录").Page("用户登录_2").Sync

TOP

若,我在日期控制的不选择,直接默认,那,再次运行上面的脚步本时就没有问题。不知道是何解。

TOP

 
当前时区 GMT+8, 现在时间是 2008-10-11 15:39Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹