51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[Robot] 有没有人用Robot测过Java Swing开发的程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-7-5 13:58:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在测试用Java Swing开发的程序时有很多困惑

比如我有这样的一个程序(我随便写的,很简单,就是大家看到的这样)
注意:它的标题很长
D:\Application.jpg

然后用Robot 识别时发现它的对象组成是这样的

D:\objectTree.jpg

我在录制对界面上按钮点击操作时的脚本如下(对不起,中间窗口的标题很长,大家看起来有点麻烦)
    Window SetContext, "Caption=123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789||", ""
    PushButton Click, "JavaCaption=123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789;\;Type=PushButton;Name=jToggleButton"

大家会发现对 按钮的识别是通过一个父对象来实现的,
如果我用 SQAGetProperty 来取得这个按钮的FullRecognition(代码如下)
dim value as string
    Result = SQAGetProperty("JavaCaption=123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789;\;Type=RadioButton;Name=jRadioButton", "FullRecognition", value)

就会得到 value=""\;Type=Window;Caption=123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789||;\;Type=JavaWindow;JavaCaption=123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789;\;Type=PushButton;Name=jToggleButton"

[ Last edited by oiwenwen on 2004-7-5 at 14:20 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
 楼主| 发表于 2004-7-5 14:38:07 | 只看该作者

不知道怎么贴图,Sorry

不知道大家看懂了没有?

因为 通过 JavaCaption 只能含有79个字符,所以当窗口标题很长的时候,它就会截取前面的79个字符,所以在回放的时候就会出现找不到对象的错误
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2004-7-5 15:11:19 | 只看该作者
因为没有实际的项目,我只能凭经验告诉你

  1.有些父对象是可以去掉的
  2.利用其他属性代替其中比较长的属性
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2004-7-6 09:16:57 | 只看该作者
1.有些父对象是可以去掉的
我试着去掉父对象,结果是识别不了对象

  2.利用其他属性代替其中比较长的属性
我也试了其它属性,结果也是不行
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2004-7-6 09:29:31 | 只看该作者
我就是不明白 Java 的GUI的结构

明明就是很简单的一个 JFrame 上面有一个 RadioButton 和 一个PushButton
为什么用 Robot识别时却发现有很多层的呢?

(这是我用Robot识别窗口属性时,得到得对象结构树)
JavaWindow Type=JavaWindow;JavaText=123456789|...
┗JavaWindow Type=JavaWindow;Index=2
   ┗JavaPanel Type=JavaPanel;Index=1
     ┗JavaPanel Type=JavaPanel;Index=2
       ┣RadioButton Type=RadioButton;Name=jRadioButton
       ┗PushButton Type=PushButton;Name=jToggleButton

从这个结构图上来看, RadioButton在第五层上
而我用SQAGetProperty取得它的FullRecognition时却只有第一二层,的三四层没有了,真是被它给搞糊涂了:s
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2004-7-6 14:45:45 | 只看该作者
我暂时手里没有开发环境,哥们你要不着急,等到下周,我看看有没有解决方案!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2004-7-6 16:19:00 | 只看该作者

呵呵,龙哥你这个斑竹太尽责了

回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2004-8-12 13:18:34 | 只看该作者

字符判断的时候注意使用特殊字符“*”,详细用法查看帮助

呵呵,{Form1*}
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-11 09:36 , Processed in 0.079257 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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