致力于软件自动化测试的研究和探索

如何得到父对象

上一篇 / 下一篇  2008-01-07 16:26:38 / 个人分类:蓝天测试

查看( 1521 ) / 评论( 14 )
我把一个对象传到函数中,现在我想在函数中得到该对象的父对象,请问有什么好办法吗?51Testing软件测试网Ev B:MP4dp%^0E
比如:一个我的传入对象为Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd")
*NAm/w2QA.NU0     现在我在函数中想得到Browser("百度一下,你就知道").Page("百度一下,你就知道")这个对象,大家有什么好办法吗?非常感谢!

TAG: 蓝天测试

gy21st发布于2008-01-07 14:38:59
set objPage =  Browser("Browser").Page("百度一下,你就知道").WebEdit("wd").GetTOProperty("Parent")软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具y}v/N)D

T5Z'd1fbWM51Testing软件测试网objPage 就是你要的。
jinsen发布于2008-01-07 14:47:44
又多学了一招,感谢楼上。
蓝天伟测试之家 lantianwei 发布于2008-01-07 15:27:03
首先非常感谢gy21st的帮助,问题解决了.
%]*|le!Ol@软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具但是我有一几个疑问,刚也看了一些关于GetTOProperty和GetROProperty的文章,但还是不明白为什么.所以我有以下问题想赐教一下.
]u$k?)|1fIrwww.51testing.com1.为什么我用GetROProperty得不到父对象?51Testing软件测试网c3j
W`\9}o:^2uQ

2.Parent这个属性我SPY也没看到啊,在哪里可以找到啊?还是就是有这样一个固定用法?4t!OW*u,I|g7h
3.是不是GetROProperty可以取出所有可以通过GetTOProperty取出的属性值(在不用SetTOProperty的情况下)?
4lq%L%OS3StB:U4.为什么Win对象没有Run-Time Object Property?
guppy的个人空间 guppy 发布于2008-01-07 15:37:42
学习
gy21st发布于2008-01-07 16:18:01

QUOTE:

原帖由 lantianwei 于 2008-1-7 15:27 发表
Y+z[ie!z`%i#N首先非常感谢gy21st的帮助,问题解决了.
%IS _Aq:lOT51Testing软件测试网但是我有一几个疑问,刚也看了一些关于GetTOProperty和GetROProperty的文章,但还是不明白为什么.所以我有以下问题想赐教一下.中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务 X.lk6|-D        s'zU#i.uT
1.为什么我用GetROProperty得不到父对象?软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具:u2p&u(`7a9ibp
2.Pa ...
*NW"v1p9J51Testing软件测试网软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具e2X~c*MpG&t;S:f
你为难我呢,这么多问题。 以下是个人理解,不一定完全正确:软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具 Wv"T'S%X        h$O"g6f9`
首先我们都知道TOProperty是指对象库中的对象属性。而且我们知道,对象库中的对象是可以编辑的,包括其层次结构
5O"@z4b"p6U;Z中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务拿这个对象来说Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd"),有严格层次关系,但同样可以变成
6l[        b8d }X
o8V
Browser("百度一下,你就知道")
h0B|:eyZSn51Testing软件测试网Page("百度一下,你就知道").WebEdit("wd")
'w|hd'WxMaa/h软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具这样层次结构的对象库,也就是说Browser("百度一下,你就知道")和Page("百度一下,你就知道")是同一级的对象。当然我们实际并不会这么用。软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具0w J\7P5Vh!~d
(但类似browser().dialog()这种情况完全可以把dialog拉出来,更清晰。题外话。)软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具t[W%O?y
所以这里的parent显然和对象库中层次结构有关,和运行时没有任何关系。
[,DW0q4Q/`?2xH7`51Testing软件测试网这个属性是看不到,我也是看QTP自带的例子发现的,应该是一个固定用法。5k%KVCK#\
而且我怀疑QTP应该还有类似"未公开"的属性,只是我们都不知道,知道了以后就可以写一个"Inside QTP"了
` u~uW(WK*Awww.51testing.com
Z$ug%V!o+]d51Testing软件测试网以上应该回答了1-3。关于第四点,Spy中我们可以看到"windows object do not support run-time object properties"。也就是说windows对象没有object属性。为什么我也不知道 9SE/PXBRM


p p CA+o;Iwww.51testing.com
[ 本帖最后由 gy21st 于 2008-1-7 16:46 编辑 ]
蓝天伟测试之家 lantianwei 发布于2008-01-07 16:25:48
非常gy21st的精彩回答,佩服! 软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具b1XJ+so5P
似乎第3个没有回答,是不是在对象没有用SetTOProperty的情况下,GetROProperty完全可以替代GetTOProperty?软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具V9jd&_/U9u~fx
看来还真的得仔细看看QTP自带的东西,很多还是非常好的,特别是一些扩展用法.
jinsen发布于2008-01-07 16:31:04
回复 6# 的帖子
我也有个问题想问一下:
r$Uj9a'Nk;z51Testing软件测试网你在回答中提到了对象库,并且说”parent显然和对象库中层次结构有关,和运行时没有任何关系。”。但是,我使用描述性语言运行也没有问题啊。
gy21st发布于2008-01-07 16:35:39

QUOTE:

原帖由 lantianwei 于 2008-1-7 16:25 发表
1b:}!@O'R2r51Testing软件测试网非常gy21st的精彩回答,佩服! 软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具
qKS'UM4iJ

似乎第3个没有回答,是不是在对象没有用SetTOProperty的情况下,GetROProperty完全可以替代GetTOProperty?软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具J+a,PhcF'R/A
看来还真的得仔细看看QTP自带的东西,很多还是非常好的,特别是一些扩展用法.
0Bp&_2X%V|

Y1edR#T*?:R0Al        eM4r软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具我不明白你说的"替代"是什么意思。各有各的用途,不存在替代一说。
sZ0P*}+?4{`9v{软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具如果意思是GetROProperty可以得到所有GetTOProperty可以得到的属性,那肯定不可以啦,比如这个parent就搞不定
蓝天伟测试之家 lantianwei 发布于2008-01-07 16:41:37

QUOTE:

原帖由 gy21st 于 2008-1-7 16:35 发表 中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务`$@        P/A4fX
~Z*c\%NLa


Z&iZ;vQ9^twww.51testing.com
我不明白你说的"替代"是什么意思。各有各的用途,不存在替代一说。
+xA7{|4ep中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务如果意思是GetROProperty可以得到所有GetTOProperty可以得到的属性,那肯定不可以啦,比如这个parent就搞不定
www.51testing.com
s6q^GY%~ZRcU

这个是特殊情况就不算了,我总感觉GetROProperty是包含GetTOProperty的(在没有用SetProperty的情况下),也就是在一般情况GetTOProperty可以做的,GetROProperty都可以做.是吗?如果不是,可以给个例子说明一下吗?(parent就除外了)
gy21st发布于2008-01-07 16:48:27

QUOTE:

原帖由 jinsen 于 2008-1-7 16:31 发表
8r Gc_ @Fwww.51testing.com我也有个问题想问一下:软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具6N0zW0q)B:X*x]j
你在回答中提到了对象库,并且说”parent显然和对象库中层次结构有关,和运行时没有任何关系。”。但是,我使用描述性语言运行也没有问题啊。
Yh:T3B
Sq(b中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务

\8\        Cs5D:Y软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具我理解,描述性编程不用对象库,其层次结构应该就是语句定义的。你同样可以试试改变语句中对象的层次结构,应该可以看到不同的parent对象。
gy21st发布于2008-01-07 16:53:18

QUOTE:

原帖由 lantianwei 于 2008-1-7 16:41 发表
9xZ6N#i5AWK+a,[J软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具
7^%T2}3TH软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具这个是特殊情况就不算了,我总感觉GetROProperty是包含GetTOProperty的(在没有用SetProperty的情况下),也就是在一般情况GetTOProperty可以做的,GetROProperty都可以做.是吗?如果不是,可以给个例子说明一下吗?(paren ...
软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具-H%ij)hi

7g        n9UHFD&N软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具我想那应该是很自然的。
蓝天伟测试之家 lantianwei 发布于2008-01-07 17:16:10
回复 12# 的帖子
呵呵... 软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具 JX&MsV"w1jVm
以后请大哥多多照顾小弟啊!
季风的测试生活 jifeng 发布于2008-01-07 18:26:03
如果确定对象是不变的,可以在函数外边,把Browser("百度一下,你就知道").Page("百度一下,你就知道")给一个变量,再把变量传到函数里边就可以了(我以前就是这么搞的)
{2\EQR$lgH?软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具
c
@B Ja%e/H'N软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具
如果是变化的就需要用到上边的方法了。软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具T,G4vDM~+cT6K.M
51Testing软件测试网
A$s!H        ^a:u

[ 本帖最后由 jifeng 于 2008-1-7 18:27 编辑 ]
dsjlzh发布于2008-01-07 19:58:39

QUOTE:

原帖由 lantianwei 于 2008-1-7 16:41 发表
0A1zi        H+d{*^;M51Testing软件测试网www.51testing.com7xM        b?r.v4{ O
这个是特殊情况就不算了,我总感觉GetROProperty是包含GetTOProperty的(在没有用SetProperty的情况下),也就是在一般情况GetTOProperty可以做的,GetROProperty都可以做.是吗?如果不是,可以给个例子说明一下吗?(paren ...
8HqO~h7U软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具
:x!R7~ BH*wwww.51testing.com说说我的理解:
'q"Un[K
B@/LM_
GetTOProperty得到的是测试对象的属性,GetROProperty得到的是运行时对象的属性,测试对象属性是在添加到对象库时QTP记录下来的,然后通过这些属性来识别对象,而记录的测试对象属性有强制属性和非强制属性,强制属性是必须用来识别对象的,而非强制属性可能被记录但不用来识别对象。强制和非强制属性只是针对记录测试对象来说的,而我们从对象库中看到的“Description properties"是不分强制和非强制的,只要列出来的就都必须被匹配。
5qE"N-Q9\这样就可能存在记录测试对象时多记录了一些非强制属性信息,而在运行时识别对象并未用到,但运行时该对象的这些属性已经不同,那么此时两个函数获得的值就应该会不同了。www.51testing.comn'f^o1K8o$I!v
做个简单的实验,只打开一个IE并打开http://www.sndo.cn/页面,然后添加这个browser对象,然后改变url,如http://www.google.com,执行如下语句www.51testing.com7?TI4[v;_
TOP =  Browser("browser").GetTOProperty("title")
3S6Q-y7`-ijT51Testing软件测试网ROP =  Browser("browser").GetROProperty("title")
G]5Q_X6e        I!o3m|www.51testing.commsgbox "TOP:" & TOP & vbCRLF & "ROP:" & ROP软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具(B-W U*gJod
可以发现两者是不同的,其原因是title虽然在添加时被QTP记录了,但并没有用来识别对象,而运行时对象的title已经改变了。中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务rr\a0V7m pu
所以不应该企图用GetTOPropery来获取运行时属性的值。www.51testing.comKx:`0U;U9S2_)o

yld6qo(e嗯,似乎这并没有没有回答所提的问题,其实想知道哪些属性是test object有而runtime object没有,在spy中看一下会有所发现,还是IE,有的属性名相同值不同,例如"class name"测试对象值是"Browser",运行时是"window",也有代表同一个属性但属性名不同例如测试对象的"abs_x"和运行时对象的"left"。www.51testing.compK(w6lS-m/J
"nGeI ?
其实一般也不会用错或滥用的,这也只是为了解释而解释了,呵呵。`8]l_pU3f)B-`
51Testing软件测试网&Z*F"^(Q.Oi
[ 本帖最后由 dsjlzh 于 2008-1-7 20:16 编辑 ]
我来说两句

(可选)

Open Toolbar