51Testing软件测试论坛

标题: 关于GetROProperty [打印本页]

作者: sally_520xue    时间: 2007-11-6 17:27
标题: 关于GetROProperty
实在是没辙了,烦啊,想用GetROProperty写一个小程序,抓取一下FLIGHT登录时候的密码,但是不知道自己到底什么地方没有改对,对象库里的属性值应该改那一部分,为什么我的程序无法实现呢?哪位高人帮忙指点一下,谢了~~~

  下面是没有实现的代码,帮忙帮忙,多谢~~~

   Dim loginpassw

SystemUtil.Run "D:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe","","D:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\","open"
Dialog("Login").WinEdit("Agent Name:").Set "sally"
Dialog("Login").WinEdit("Agent Name:").Type  micTab

loginpassw=Dialog("Login").WinEdit("Password:").GetROProperty("nativeclass")

msgbox loginpassw

loginpassw=Dialog("Login").WinEdit("Password:").GetROProperty("nativeclass")这句话里最后的native class应该改成什么才对啊,
对应的对象库里应该改的是那部分啊?
作者: jackymail    时间: 2007-11-6 18:16
标题: no
我来说两句吧,这个winedit有一个text的属性,在作为密码的时候,他对QTP是空的..如果是一个名字使用的winedit,就有text的值。

[ 本帖最后由 jackymail 于 2007-11-7 17:14 编辑 ]
作者: hsjzfling    时间: 2007-11-6 19:31
标题: 回复 1# 的帖子
GetROProperty()中你想取到哪个属性的值就写对应的属性名称,比如你要取密码,你就先用spy查看下密码WinEdit对象的属性的值,哪个是你输入的密码,然后就在GetROProperty()中写入该属性名称。

就你上面的例子来看,应该是取"text"属性,当然你没有输入过密码,那么取到的text值应为空
作者: sally_520xue    时间: 2007-11-7 10:57
标题: 回复 3# 的帖子
三楼,我明白了你的意思,RO是在运行过程中抓取值,我把RO改成TO,同时把后台的对象库里的PASSWORD的attached text故意改成了fffffffddd,然后加一个msgbox,让他返回这个值,但是程序还是不能运行,是为什么啊?
set loginpassw=Dialog("Login").WinEdit("Password:").GetTOProperty("attached text")
msgbox Cstr(loginpassw)
作者: mustwangrong    时间: 2007-11-7 11:33
标题: 关注GetROProperty()
GetROProperty()t可以取datatable中的值吗.
貌似datatable没有这个方法.
作者: hsjzfling    时间: 2007-11-7 13:40
标题: 回复 4# 的帖子
把set去掉

---------------------
回5楼,确实不可以,你在帮助index中查询datatable,就知道该如何进行相关操作了
作者: sally_520xue    时间: 2007-11-7 16:12
我把SET去掉,程序是可以运行,但是运行之后完全是我录制之后的回放过程,GetTOProperty没有得到应该有的效果啊,比如说抓取值什么的,我自己又用FLIGHT程序写了段脚本,再次加了一下GetTOProperty,然后用msgbox返回值,msgbox返回的是一个一个的单词,因为前面用的是mid函数,所以我现在也弄不明白我返回的是GetTOProperty得到的结果还是mid函数得到的结果了。
   这段代码是:Dialog("Login").WinEdit("Agent Name:").Set (x(0))
           Dialog("Login").WinEdit("Agent Name:").GetTOProperty ("text")
            msgbox loginame
   
   
   希望高人继续帮忙指点一下,先谢过~~
作者: hsjzfling    时间: 2007-11-7 19:14
原帖由 sally_520xue 于 2007-11-7 16:12 发表
我把SET去掉,程序是可以运行,但是运行之后完全是我录制之后的回放过程,GetTOProperty没有得到应该有的效果啊,比如说抓取值什么的,我自己又用FLIGHT程序写了段脚本,再次加了一下GetTOProperty,然后用msgbox返回 ...


你要得到什么效果。。。你用GetTOProperty取到的值都没有返回给变量,那句话就等于没写。。。
作者: pxwcypx    时间: 2007-11-8 09:39
呵呵,今天又有新的收获了,以前看帖子总是半懂不懂的,现在算是有了很大的进步了
作者: sally_520xue    时间: 2007-11-8 10:52
标题: 回复 8# 的帖子
GetTOProperty是从对象库里取到的值对不对?我的意思就是想用GetTOProperty从对象库里取到登录名这个值,然后用MSGBOX返回,就是这个意思,可是我不是很清楚怎么写,所以一直在这里绕弯子,呵呵,我看你现在在线哦,有空的话帮下忙吧,多谢~~~
作者: hsjzfling    时间: 2007-11-8 11:38
标题: 回复 10# 的帖子
首先你要确定对象库中对象属性值中有你要取的值,否则是取不到的
以你的  Dialog("Login").WinEdit("Agent Name:").GetTOProperty ("text") 这句代码为例,WinEdit对象在对象库中是没有"text"属性的,所以这样会报个Warning出来,而不会取到任何值。
对于你的需求来说,你应该选择使用GetROProperty("regexpwndtitle")来返回你输入的登录名
作者: gy21st    时间: 2007-11-8 14:25
标题: 回复 10# 的帖子
WinEdit对象在对象库中是有"text"属性的

对于登录名, Dialog("Login").WinEdit("Agent Name:").GetROProperty ("text"),就可以了

对于密码, 二楼说过了,对QTP始终为空,不知道存到哪个属性去了。
作者: sally_520xue    时间: 2007-11-8 15:04
恩,多谢高人帮忙,现在总算搞清楚了,其实很简单,只是有一个问题我始终没有搞明白,所以一直在糊涂着。
QTP中属性,属性名,和属性值都是必须一一对应的,但是我在做这个小程序的时候忽略了属性值,也就是value这里,我以为对象库里的value值是可以任意更改的,只要属性名和前台的脚本对应了就可以了呢~~~嘿嘿,真是感谢各位大侠的帮忙,谢~~~




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