walker1020 2006-8-31 10:32
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 的指引,就可以把添加一些支持的不好的控件设置成虚拟控件,也就添加到对象库了。
[code] 在QTP 8.2 添加虚拟对象的具体操作步骤是:
1, 依次点击 Tools ---> Virtual Objects ---> New Virtual Object…,打开虚拟对象向导,点击Next;
2, 选择Class为button,点击Next;
3, 点击标记对象按钮;
4, 选择要操作的对象区域,点击Next (对象区域就是你要操作的那个对象);
5, 默认,点击Next;
6, 完成。[/code]
添加虚拟对象后可以解决问题实例有:
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
[[i] 本帖最后由 walker1020 于 2007-2-1 23:39 编辑 [/i]]
walker1020 2006-8-31 10:38
补充一点
Object Spy 是 QTP 用來查看、监视 GUI object 属性的工具。通过Object Spy 你是无法把对象添加到 对象库的。
ztcreative 2006-8-31 10:39
强烈支持斑竹!!!
小宝2006 2006-8-31 10:50
不错,支持中........
walker1020 2006-8-31 11:31
另外一种解决方法
曾经有朋友问:“用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
qd_pudding 2006-8-31 16:36
walker1020
如果用这种方法去识别的话只能在当前脚本有效,如果打开一个新的,就没有了,还必须实际识别一下
所以还是应该通过这种方式来识别的Tools ---> Virtual Objects ---> New Virtual Object
walker1020 2006-8-31 19:38
[quote]原帖由 [i]qd_pudding[/i] 于 2006-8-31 16:36 发表
如果用这种方法去识别的话只能在当前脚本有效,如果打开一个新的,就没有了,还必须实际识别一下
所以还是应该通过这种方式来识别的Tools ---> Virtual Objects ---> New Virtual Object [/quote]
谢谢qd_pudding的提醒和补充! 虚心向你学习!
tian 2006-9-1 14:12
我现在也被这问题困扰,谢谢,我按以上所说的方法尝试一下。
higkoo 2006-9-1 22:24
顶
我也发过一些类似的贴子。
都是关于QTP无法识别的问题。
今天没在公司,看到你的贴子,很有想法。
只可惜不能实践,等到周一我一定试试。。
higkoo 2006-9-5 14:18
出错了
我用New Virtual Object...新建一个表格,36行9列。选中区域后点下一步,最后完成出现一个提示:
This operation cannot be performed.For further help please contact support.
点确定后,再点到QTP就没有反应了。
用Alt+Tab时,QTP也没有在列表中。
请问可能原因是什么啊?
gongliang 2006-9-8 17:39
谢谢版主!
按照版主所讲的,的确是有效!
我是测试java应用程序的时候遇到了一些这样的问题!一般情况下:JtextFiled,JTree这样的控件不能识别!一直提示:“对象属性不能匹配”,设置成虚拟对象以后的确可以!但是还是无法添加到对象库中,“qd_pudding”说的对!
jinny 2006-9-12 10:47
按照Tutorial_oldsidney_cn.pdf 练习 QTP时,遇到问题!
上网助手等插件都卸载掉了,在TOOLs> Option > WEB>Page/Fram Options.., 选择 Different object descriptions,又试过一次还是录制不了文本框、按钮。我也试过用object SPY和Virtua objectl了,可是还是不行呀!
各位高手,请指点。不知道是不是还有什么会影响其录制呢?
higkoo 2006-9-12 20:25
值得学习
好文章,值得推荐和学习!
这些方法和可能是初学者,逐步深入时可能会遇到的问题。
在这里可以找到解决方法,顶一顶,看了不顶就吃亏了。
denty 2006-9-26 17:07
我还是录制不了控件
我按班主的方法,装了 QuickTest Professional Java 6.5 Add-in 、QuickTest Professional Oracle 6.5 Add-in ,但是,录制脚本后再运行,还是会出现无法识别控制的提示,麻烦给于指导,十分感谢,。
[[i] 本帖最后由 denty 于 2006-9-26 18:01 编辑 [/i]]
scmona 2006-9-26 22:53
好贴,支持ing
walker1020 2006-9-27 15:12
[quote]原帖由 [i]denty[/i] 于 2006-9-26 17:07 发表
我按班主的方法,装了 QuickTest Professional Java 6.5 Add-in 、QuickTest Professional Oracle 6.5 Add-in ,但是,录制脚本后再运行,还是会出现无法识别控制的提示,麻烦给于指导,十分感谢,。 [/quote]
根据错误提示,这应该是脚本的某行语句有问题。 QTP运行到脚本的哪一行时出现这个Run Error 的错误信息?最好把你的脚本发送上来,这样我们好帮助你解决问题。
提示:我怀疑出错的这行代码是你自己写的吧。如果你用到了某个函数,你是不是函数的参数没有写对? 还是漏写了括号?
denty 2006-9-29 15:43
我的脚本如下:
denty 2006-9-29 15:45
麻烦大家帮我看一下,真的很感谢/我看是日期的选择框有问题,不知道为什么不能运行通过。
denty 2006-9-29 15:51
上面可能看不清楚,这个才清楚:
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
denty 2006-9-29 16:00
若,我在日期控制的不选择,直接默认,那,再次运行上面的脚步本时就没有问题。不知道是何解。
denty 2006-9-30 11:12
我没有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。麻烦版主可否给我?十分感谢!邮箱:[email]denty26@163.com[/email],QQ是88176220
loveing1103 2006-10-4 11:39
不知道是我在安装盘中没找到 QuickTest Professional Java 6.5 Add-in 的安装文件呢,还是我的安装盘上就没有 ,各位大侠, 谁有?能给我发一个吗? 谢谢啦!邮箱:wwwtyy@126.com
Joan2005 2006-10-11 15:40
可以在Active Screen窗体中,在某控件上点右键--选择view/add object..选择要添加的控件,点OK---add to object repository.-如果该对象已经存在在对象库中,则显示view object repository.
danmy 2006-10-11 21:29
好文,强烈支持
denty 2006-10-13 10:20
我的问题解决了,原因是,因为,我们是用java的,但是,我之前没有装java的add-in,所以,导致它的控制识别不了.
我们数据库是用oracle的,请问,哪位朋友有呢,可否发一下给我,我的msn:denty26@hotmail.com,谢谢
lillian2151 2006-10-19 10:33
oldsidney 我看过他QTP学习笔记,启蒙老师也~
fantasy521 2006-10-19 15:06
我也想要java的add -in,不知道哪位朋友有,能否给发一份 [email]gm333@163.com[/email]
Babby 2006-10-31 18:00
[quote]原帖由 [i]higkoo[/i] 于 2006-9-5 14:18 发表
我用New Virtual Object...新建一个表格,36行9列。选中区域后点下一步,最后完成出现一个提示:
This operation cannot be performed.For further help please contact support.
点确定后,再点到QTP就没 ... [/quote]
我也遇到这个问题了,是什么原因呢,是没装java add-in的原因吗~~~
zhyb_2008 2006-11-2 09:38
不错,支持AND学习中,另俺也想要JAVA的ADD-IN.
zitong 2006-11-6 11:23
我也是刚开始学习此工具,很受益!
真的很感谢前辈们的无私奉献!
jjwhyno 2006-11-21 19:55
我的8。2版本的,怎么几个ADD-IN 都安装不成功啊,真麻烦
icefire 2006-11-23 13:53
我用的是8.2的版本。
应用程序是delphi的。
我将系统不能识别的控件(tcxcustominnertextedit)用Tools-----Object Identification,将此控件映射为标准的SingleLine Edit类,能加入到对象库中,但当我录制脚本回放时,就会有提示类型匹配,这个脚本是只是录制的,没有进行过编辑,按理说应该不会存在不匹配的问题。
提示信息“Cannot identify the object "TcxCustomInnerTextEdit" (of class WinEdit). Verify that this object's properties match an object currently displayed in your application”;
不知道大家有没有遇到过这种问题,若有是怎么解决的。
wolf.cb 2006-12-11 15:08
顶啊 好东西 俺滴8.2版本经常这不认那不认,目前解决不少问题,3Q
zqm999a 2006-12-11 15:46
我没有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。能不能给我发一份,十分感谢邮箱:[email]zhuqm@ufgov.com.cn[/email]
carina 2006-12-17 14:26
寻找 QTP8.2或9 的 java add-in
如果哪位前辈有,可否发一个给我 ? 谢了啊....
[email]lilijun726@hotmail.com[/email]
smilefox6677 2006-12-18 11:20
俺倒是有java-add-in,不过提示不能破解,无法安装。请问怎么办???
论坛ftp上好像有,各位可以去下载。
[[i] 本帖最后由 smilefox6677 于 2006-12-18 11:23 编辑 [/i]]
derek_roy 2007-1-1 20:51
求救!加载项不见了
sdlkfj9 我安装好 QTP中文翻译补丁后,有三个Add-in ( ActiveX、Visual Basic和 Web)加载项不见了。有什么办法解决!
alinahello 2007-1-11 14:28
回复 #28 Babby 的帖子
我在8.2上同样遇到这个问题,装了9.0后问题就没了.
robby 2007-1-11 16:44
安装QTP9JAVAAdd-in时提示错误:“1628 完成基于脚本的安装失败” 是什么原因?
另外想在QTP8.2里面安装QTPJAVAAdd-in具体应该安装在哪个路径下?
知道的朋友请告诉一下,谢谢了~
htot05 2007-1-23 09:29
支持,学习中...