有没有人用Robot测过Java Swing开发的程序
我在测试用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 ]
不知道怎么贴图,Sorry
不知道大家看懂了没有?因为 通过 JavaCaption 只能含有79个字符,所以当窗口标题很长的时候,它就会截取前面的79个字符,所以在回放的时候就会出现找不到对象的错误 因为没有实际的项目,我只能凭经验告诉你
1.有些父对象是可以去掉的
2.利用其他属性代替其中比较长的属性 1.有些父对象是可以去掉的
我试着去掉父对象,结果是识别不了对象
2.利用其他属性代替其中比较长的属性
我也试了其它属性,结果也是不行:( 我就是不明白 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 我暂时手里没有开发环境,哥们你要不着急,等到下周,我看看有没有解决方案!
呵呵,龙哥你这个斑竹太尽责了
赞字符判断的时候注意使用特殊字符“*”,详细用法查看帮助
呵呵,{Form1*}
页:
[1]