51Testing软件测试论坛

标题: 有关GetROProperty!!!!!!!! [打印本页]

作者: three116    时间: 2007-9-11 11:19
标题: 有关GetROProperty!!!!!!!!
我用的是QTP9.2
问题代码如下:
Check1=Browser("Browser").Page("CSG").Frame("Frame").WebElement("Service_System_Services_HTTPEn").GetROProperty("innerText")
msgbox("Check1="&Check1)

如上代码:为什么获取不了运行时的WebElement("Service_System_Services_HTTPEn")的innerText属性的内容,获取的全是对象仓库中innertext属性的值。比如说在对象仓库中innertext值为:Saved  ,输出是Saved,但是如果对象仓库中innertext值为空,即使运行时网页上显示的是Saved,输出也是空!
作者: yabest    时间: 2007-9-11 11:30
晕死,你想让QTP挂羊头卖狗肉啊?!
作者: three116    时间: 2007-9-11 11:51
呵呵  我也不想这样,只是问题太奇怪
作者: wuzhuayu    时间: 2007-9-11 11:56
查看下执行过程中页面的源代码看看啊,看innertext的值是否真的是saved啊,这个地方是不是用脚本去控制的?或者不是QTP的问题。
作者: hsjzfling    时间: 2007-9-11 12:22
回楼主,你若把对象库中innertext中的saved改为“adjfklafjkl”恐怕qtp就要报错对象找不到了。。。。。。
你若是要动态获取WebElement的innertext的值,那就要把WebElement对象做下处理,或者使用描述性编程+正则表达式,或者将对象库中的对象属性值参数化/正则表达式
例:描述性编程:totalLinkNum = Browser("51Testing软件测试论坛 测试 | 软件测试").Page("51Testing软件测试论坛 测试 | 软件测试").WebElement("outertext:=[1-9][0-9]*","innerhtml:= [1-9][0-9]* ").GetROProperty("innertext")
对象库:[attach]32688[/attach]
或者将对象库中的属性使用正则表达式,比如innertext属性值改为Saved|Modified|Deleted
作者: yabest    时间: 2007-9-11 12:57
原帖由 three116 于 2007-9-11 11:51 发表
呵呵  我也不想这样,只是问题太奇怪


LZ说:“给我来一斤狗肉。”
QTP给了LZ一斤狗肉,LZ很高兴。

LZ又说:“给我来一斤羊肉。”
QTP就给了LZ一斤羊肉。
结果LZ一看,大怒,一把揪住QTP,说:”上次给我狗肉挺好的,怎么这次却给我羊肉,不给狗肉啦!你怎么这么奇怪!坑我是吧?!“
QTP:”。。。“

[ 本帖最后由 yabest 于 2007-9-11 13:01 编辑 ]
作者: volvoo    时间: 2007-9-11 14:09
估计你的用法有问题
VAL=uiobject.GetROProperty(“属性名称”)
作者: hsjzfling    时间: 2007-9-11 20:08
6楼真幽默~这下子加班不会困了~顶下~
作者: walker1020    时间: 2007-9-11 21:45
原帖由 three116 于 2007-9-11 11:19 发表
我用的是QTP9.2
问题代码如下:
Check1=Browser("Browser").Page("CSG").Frame("Frame").WebElement("Service_System_Services_HTTPEn").GetROProperty("innerText")
msgbox("Check1="&Check1)

如上代码: ...


请楼主先在QTP的帮助里面 弄明白 GetROProperty的 含义再说。
作者: walker1020    时间: 2007-9-11 21:46
原帖由 yabest 于 2007-9-11 12:57 发表


LZ说:“给我来一斤狗肉。”
QTP给了LZ一斤狗肉,LZ很高兴。

LZ又说:“给我来一斤羊肉。”
QTP就给了LZ一斤羊肉。
结果LZ一看,大怒,一把揪住QTP,说:”上次给我狗肉挺好的,怎么这次却给我羊肉, ...


yabest 真幽默。呵呵! 建议yabest 去当讲师。否则 屈才了呀
作者: hsjzfling    时间: 2007-9-11 21:52
yabest一定要在上海讲第一课哦~偶得来洗耳恭听啊~
作者: three116    时间: 2007-9-14 13:38
呵呵 几天没来看了!

不管你是帮忙,还是损损我,都要谢谢你们了。
当然要特别感谢提供帮助的人;对于发牢骚的,有这时间或如果有能力,那就提供点解决办法,或者如果有理解不正确的地方,能够帮指出来,这样对大家都有益。

不过问题早解决了!也不是用GetROProperty方法。
作者: yabest    时间: 2007-9-14 16:11
原帖由 three116 于 2007-9-14 13:38 发表
呵呵 几天没来看了!

不管你是帮忙,还是损损我,都要谢谢你们了。
当然要特别感谢提供帮助的人;对于发牢骚的,有这时间或如果有能力,那就提供点解决办法,或者如果有理解不正确的地方,能够帮指出来,这样对大家都有益。



唉,你都没明白我的意思。

简单的说:

(1)你把对象库中WebElement("要买的肉")的innerText属性设置为“狗肉”,则
      WebElement("要买的肉")就指向狗肉
      WebElement("要买的肉").GetROProperty("innerText")就返回“狗肉”
      WebElement("要买的肉").GetROProperty("价格")就返回狗肉的价格
      WebElement("要买的肉").GetROProperty("重量")就返回狗肉的重量
      
(2)你把对象库中WebElement("要买的肉")的innerText属性设置为“羊肉”,则
      WebElement("要买的肉")就指向羊肉
      WebElement("要买的肉").GetROProperty("innerText")就返回“羊肉”
      WebElement("要买的肉").GetROProperty("价格")就返回羊肉的价格
      WebElement("要买的肉").GetROProperty("重量")就返回羊肉的重量
      
所以,你把WebElement("Service_System_Services_HTTPEn")的innerText设置为空串,它就指向空串WebElement了,而不是指向Saved WebElement。GetROProperty("innerText")的结果,必然是返回空串了!

建议你看看我写的帖子《QTP识别和操作对象的原理》[url]http://bbs.51testing.com/thread-87074-1-2.html[/url],看后你就能明白了。

[ 本帖最后由 yabest 于 2007-9-14 16:14 编辑 ]
作者: lengz    时间: 2007-9-14 16:12
原帖由 yabest 于 2007-9-11 12:57 发表


LZ说:“给我来一斤狗肉。”
QTP给了LZ一斤狗肉,LZ很高兴。

LZ又说:“给我来一斤羊肉。”
QTP就给了LZ一斤羊肉。
结果LZ一看,大怒,一把揪住QTP,说:”上次给我狗肉挺好的,怎么这次却给我羊肉, ...


难道是老朴或峰歌的小号?
作者: xmy942002    时间: 2007-9-14 16:19
哈哈,形容瞒恰当的,不错!顶一下
作者: walker1020    时间: 2007-9-15 00:54
原帖由 yabest 于 2007-9-14 16:11 发表


唉,你都没明白我的意思。

简单的说:

(1)你把对象库中WebElement("要买的肉")的innerText属性设置为“狗肉”,则
      WebElement("要买的肉")就指向狗肉
      WebElement("要买的肉").GetROP ...


此比喻贴切、生动、形象,是个不错的理解GetROProperty函数的方法。
作者: three116    时间: 2007-9-17 15:41
呵呵  谢谢yabest了
能请教下WebElement这个对象的用法吗?
作者: yuqingannie    时间: 2007-10-2 12:08

作者: 木卫十二    时间: 2007-10-25 15:27
不对呀?糊涂了~~
GetROProperty就是取实际对象的属性吧,而不是对象库是对象的属性吧?

眼花了?
作者: three116    时间: 2007-10-25 20:03
很早的问题了   呵呵
作者: lelebachelor    时间: 2008-8-7 20:23
说说GetRoProperty("name")的深层吧....GetRoProperty原意取的是测试对象运行时的值,没错这个大家也都理解了,可你知道它的潜规则吗..你看过高质量C/C++编程这本书没....C/C++有潜规则,QTP中同样有潜规则.当GetRoProperty("name")所取对象实际运行不存在/不可用等情况时,他就会取其对象库中的值........碰到问题要思考..要查找..不要总是主观觉得其它错..
作者: jaunty    时间: 2008-8-10 18:59
简单问题复杂化 故弄玄虚




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