51Testing软件测试论坛

标题: qtp录制java写的客户端程序,有一个javawindows对象找不到唯一属性 [打印本页]

作者: outoflife_2006    时间: 2017-2-8 09:10
标题: qtp录制java写的客户端程序,有一个javawindows对象找不到唯一属性
本帖最后由 outoflife_2006 于 2017-2-8 09:21 编辑

qtp录制java程序识别到javawindow对象,名称为Shell,无法确认其唯一属性值,页面有很多个shell,第一个对象是shell,第二个是shell_1,第三个是shell_2...

想问一下各位大侠,qtp录制的对象都一定有一个唯一的属性吗?
我尝试过正则表达式,用描述性变成语言不行。
FormName="Shell*"
JavaWindow("ABIS Expert Studio").JavaWindow("tagname:="&FormName).JavaObject("tagname:=WindowMenuItem","index:=4").Click "57","7"
也尝试过用tagname属性和index属性,也不行
JavaWindow("ABIS Expert Studio").JavaWindow("tagname:=Shell","index:=0").JavaObject("tagname:=WindowMenuItem","index:=4").Click "57","7"
还尝试过智能识别,也不行
尝试模拟录制和低级别录制,都不行
目前想法是跟研发讨论一下,看能不能加一个唯一属性在代码里,这样录制的时候是不是就能有唯一属性了?
[attach]104340[/attach]
下拉菜单Shell

下拉选择框Shell

弹出窗体Shell
[attach]104338[/attach]
Shell属性,添加的属性都是空的,不明白为什么
[attach]104339[/attach]
Shell_2属性,可添加的属性里找不到能唯一确认的



file:///C:/Users/Administrator/AppData/Local/YNote/data/sufen9946@163.com/58ce820b6fcd4402a0510176b8b5038b/clipboard.png

作者: jingzizx    时间: 2017-2-9 14:36
如果为了区分不同对象,道理上肯定有属性不同的地方,QTP才能识别的
作者: outoflife_2006    时间: 2017-2-10 13:52
jingzizx 发表于 2017-2-9 14:36
如果为了区分不同对象,道理上肯定有属性不同的地方,QTP才能识别的

这些Shell对象不是页面固定的,比如下拉菜单,都是点击了菜单项才会出现的,qtp第一次识别Shell对象,他认为就只有这一个Shell,通过名字就可以唯一区分,所以也不给index.等到下次,在点击其他菜单,出现下拉菜单的时候,qtp才开始给index值,所以像这种非页面固定元素的识别,版主有没有什么好的建议?
我现在跟研发商量的是,他在程序里帮我家一个ID,每个动态生成的对象ID都不同,目前还不知道程序的这个ID,qtp能不能捕捉成这个对象的属性.
非常感谢版主的回复,祝17年一切顺利!!!
作者: sunnysnow416    时间: 2017-2-15 10:07
可以使用描述性编程




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2