我有一个问题想问一下
我已经明白了:GetTOProperty():取得仓库对象的某个属性的值
GetROProperty():取得实际对象的某个属性的值
但是我不明白为什么Mercury要用GetTOProperty()这个方法.
GetTOProperty()这个方法有没有什么特别的用处呢?
因为GetTOProperty()是拿到仓库对象里的有限的几个属性值,如果是仓库对象里没有出现的属性它拿到的就是空值.
而GetROProperty()则可以拿到所有属性在运行时的值.
可以说GetTOProperty()相当于是GetROProperty()的一个子集.
GetTOProperty()的属性值总是和GetROProperty()的属性值是相等的. 它们两个是不会不相等的吧.
因为仓库对象里的属性值是用来识别对象的, 所以GetROProperty()的属性值也一定会是这个GetTOProperty()的属性值.
所以我不知道为什么Mercury会有GetTOProperty()这个方法,它还有什么特别的用处吗?
或者大家有没有遇到一种情况: 用GetTOProperty()可以做一些有价值的事情? GetTOProperpy()的结果和GetROProperpy()并不一定是一样的
GetTOProperpy()就是你在仓库文件里设置的值,它的值可以含有通配符,可以匹配几种值,如同时匹配英文和中文
如有仓库对象JavaWindow("MyTest).JavaButton("Cancel"),设置其label属性为"Cancel|取消",这样就能通配英文和中文版本的界面
JavaWindow("MyTest).JavaButton("Cancel").GetTOProperty("label")的值,不管测试英文版还是中文版系统,都是"Cancel|取消"
JavaWindow("MyTest).JavaButton("Cancel").GetROProperty("label")的值,测英文版系统时就是"Cancel",测中文版系统时就是"取消"
GetTOProperpy确实用处不大,不像SetTOProperpy和GetROProperpy那么有用。
仓库对象的属性是自己设置的,一般没必要读取它。
不过作为接口QTP还是要提供的,可能有些特殊的地方需要用到GetTOProperpy
比如有些软件界面较乱,一些文字的大小写、前后带空格经常调整,为了兼容这些大小写和前后带空格的情况,写一个小函数,自动适应这些情况。
’函数功能:取Edit里的文字,能自动适应Edit前的标题的大小写和带空格的变化
Function GetEditText(EditObject)
oldTOValue = EditObject.GetTOProperty("attached text")
newTOValue = oldTOValue + "|" + LCase(oldTOValue) + "|" + UCase(oldTOValue) + "|" + Trim(oldTOValue)
call EditObject.SetTOProperty("attached text", newTOValue)
curText = EditObject.GetROProperty("text")
GetEditText = curText
End Function wonderful!
虽然我不能完全明白里面的意思,但是我已经在里面获取了我要的信息了。
thanks very much!! yabest, thanks for your detailed description.
That's so amazing! 实践中再去学习 但是我们怎么知道对象都有哪些封装接口和自身接口呢?
其实很简单,用对象查看器(Object Spy)查看对象,在查看窗口里有列出这些接口,包括属性和方法。
窗口中间有选择栏让你选择Run-time Object或者Test Object,
当你选择Run-time Object时,它显示的就是对象的自身接口(自身的属性和方法)
当你选择Test Object时,它显示的就是对象的封装接口(封装的属性和方法)
使用遨游浏览器
我用SPY 察看了一下www.163.com 输入用户名那个编辑框 结果没有Run-time Object 的属性 ,是不是就不能使用.object.属性 ?
参考图片1.jpg
后来 用IE打开163的网页一试就出来了,奇怪!~
参考图片2.jpg
难道测试时只能用IE就不能用其他的浏览器么?
[ 本帖最后由 Eagle1983 于 2007-3-29 11:34 编辑 ] 学到了,谢谢。。。。。。。。。 原帖由 Eagle1983 于 2007-3-29 11:14 发表 http://bbs.51testing.com/images/common/back.gif
使用遨游浏览器
我用SPY 察看了一下www.163.com 输入用户名那个编辑框 结果没有Run-time Object 的属性 ,是不是就不能使用.object.属性 ?
参考图片1.jpg
后来 用IE打开163的网页一试就出来了,奇怪!~
...
估计不行,QTP内置的Web插件只是针对IE的,如果要测试遨游浏览器,可能得有相应的插件才行。
想来应该没有遨游插件吧! yabest 看了你的回复 深受启发阿 。送你三朵鲜花 sdlkfj2 sdlkfj2 sdlkfj2 sdlkfj2 44 回帖,是为了抢分