51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4499|回复: 12
打印 上一主题 下一主题

[原创] 关于QTP描述性编程不能识别到JavaButton的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-8-21 17:21:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在使用QTP的过程中出现了不能描述性编程操作JavaButton的问题,具体情形如下:
1、QTP的Object Spy可识别JavaButton组件并可正确将其添加入对象库。
2、使用描述性编程可正确操作JavaMenu却不能操作JavaButton。相关代码如下:
    Public Function openEditPanel(windowTitle,openMode)
           If openMode="menu" Then
                 JavaWindow("title:="&windowTitle).JavaMenu("label:=操作").JavaMenu("label:=修改").Select
              elseif openMode="toolbar" Then
                 JavaWindow("title:="&windowTitle).JavaButton("label:=edit").Click
           End If
     End Function
3、报错如下。Cannot identify the object "[ JavaButton ]" (of class JavaButton). Verify that this object's properties match an object currently displayed in your application.

亲们有遇到过类似的情况或是知道如何解决此类问题么,诚心求教~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-8-21 18:00:40 | 只看该作者
1、QTP的Object Spy可识别JavaButton组件并可正确将其添加入对象库。

javaButton的对象库截图给发一下呗,属性和关联关系尽量显示全一些
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-8-22 15:24:47 | 只看该作者
本帖最后由 风自飘然 于 2012-8-22 15:26 编辑

回复 2# xjwldlover


    图片如上所示:
添加对象后,运行如下语句可正常执行:
JavaWindow("自动化脚本运行工具").JavaButton("6").Click
但是用描述性语言就抛出上述错误:
JavaWindow("title:=自动化脚本运行工具").JavaButton("label:=6").Click

还有什么信息遗漏的我会随时补充,万分感谢~

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2012-8-22 16:22:35 | 只看该作者
JavaWindow("自动化脚本运行工具").JavaButton("label:=6").Click 可以运行吗,如果可以的话可能就是JavaWindow对象的描述有问题。
如果也运行不了,那么多spy记下这个javaButton的对象,看JavaButton对象的label属性是否是可变的。
我感觉就这两个地方会处问题。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2012-8-22 16:52:18 | 只看该作者
回复 4# xjwldlover


JavaWindow("自动化脚本运行工具").JavaButton("label:=6").Click   这句应该没问题。

我另外试了下,应该是JToolBar的问题,把这个按钮从JToolBar中拿出来直接放到JPanel里就没事了,上面的语句可以正常运行,但是一旦放回JToolBar就又识别不了(仅仅是描述性编程识别不了,对象库没有问题)。会报错:Cannot identify the object "[ JavaButton ]" (of class JavaButton). Verify that this object's properties match an object currently displayed in your application.
如果有可能试着从这点入手吧。这方面的资料真的不多,大家一起探讨下吧~
另:我的界面没有用美化工具,全部都是Java Swing 做出来的。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2012-8-22 19:19:00 | 只看该作者
明白了,您看我这样解释对不对。如果对象库存在
browser().Page().Frame().Button(),你可以修改对象库,将button放到Page下,这时QTP识别页面对象不管该对象在对象库中的层级关系,QTP会遍历整个页面;但是如果使用描述性编程把Button放到Page下,这时QTP找Button对象就是根据你描述性的路径来找,找到Page下后不会再找Frame下的子节点,就找不到对象了。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2012-8-23 11:08:51 | 只看该作者
回复 6# xjwldlover

    您的意思是我在进行描述性编程时少添加了一层的层级关系是吧。那我可不可以这么设想:如果我们获取到了JToolBar对象,并在这个对象里去找JButton是不是就有可能找到呢?
    刚刚我试过了,我获取到了Toolbar对象,但是在这个对象中还是获取不到任何JButton,但是把JButton从JToolBar中取出来,无论放到几层的JPanel里都能实现。我猜测可能是Jbutton放到JToolBar里是会有些许属性的变化,而Object Spy做过这方面的处理,能正确识别,但是咱们自己的描述性编程却没有这方面的特殊处理,所以识别不到。
   这也只是我的猜测,不过具体是什么原因还不好确定,您看是不是还有别的什么可能呢?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2012-8-23 12:44:22 | 只看该作者
回复 7# 风自飘然

如果我们获取到了JToolBar对象,并在这个对象里去找JButton是不是就有可能找到呢,刚刚我试过了,我获取到了Toolbar对象.

以上这个Toolbar对象是通过描述性变成找到的吗,而且描述性中间没有JPanel层?如果是这样,那这东西就有些神奇了,哎,再等待高人吧
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2012-8-24 09:19:05 | 只看该作者
回复 8# xjwldlover


    不是用描述性编程获取到的JToolBar,我是在JavaWindow下利用获取to_class为JavaToolbar的ChildObject的方式获取到的JToolBar,同样在获取到的JToolBar下利用to_class为JavaButton的ChildObject就获取不到了。至于JPanel,我在描述性编程中一直没用到诶~
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2012-8-24 10:27:41 | 只看该作者
JToolBar下利用to_class为JavaButton的ChildObject就获取不到了...
如果获取不到,要么JavaButton的HTML标签不在JToolBar下面,要么你使用的属性错了。
有个工具叫debugBar,可以很清晰的看到页面元素的目录结构,QTP编程如果常用到DOM解析,你可以安装一个这工具,非常好,查看下JavaButton是否在JToolBar下面。

就是不知道能不能解析你使用的这种页面
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2012-8-29 10:15:45 | 只看该作者
回复 10# xjwldlover


    严重怀疑JButton在放到JToolBar里以后属性发生了不可知变化,组件类型都不可知,不是JavaPanel不是JavaObject不是JavaCheckBox不是JavaButton不是JavaFrame,真的不知道怎么用描述识别确定这个东西了。。。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2012-9-4 13:55:58 | 只看该作者
各位同仁,有谁有在用Java设计的C/S界面中使用QTP描述性编程识别JToolBar中的JButton的经历啊?
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2015-9-10 16:46:22 | 只看该作者
我也遇到这个问题,请问楼主解决了吗?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-26 15:51 , Processed in 0.072859 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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