51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2227|回复: 6
打印 上一主题 下一主题

[原创] GetRoProperty无法获取窗口根对象属性问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-3-22 01:28:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

GetRoProperty--从应用程序界面上获取对象属性(即,是脚本运行时,获取的对象动态属性值)


Dim user
user =Browser("测试系统").Page("办公自动化系统").WebEdit("username").GetRoProperty("text")
如这段代码就能获得当前页面输入框里面的内容。

但是
Dim bname
bname =Browser.GetRoProperty("name")

这样的代码就不能获得属性了。
提示是:不支持这种方法。

因为我想取得当前窗口名字,可是一直不能成功取到。
虽然我有另外方法绕过取到窗口名字这个步骤,可我希望能够找到解决这个问题的办法。希望那个高手指点下。
即时真的无法取到我也要明白原因
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-3-22 10:18:54 | 只看该作者
Dim bname
bname =Browser("测试系统").GetRoProperty("name")
这样写的话应该就可以了.
如果只写Browser的话,QTP中并没有Browser这个内置对象,因此不能像调用Err.Number那样调用Browser.GetRoProperty("name") 。而且上述代码运行时,必须保证QTP的测试对象库中有Browser("测试系统").这个测试对象,QTP脚本虽然使用的是vbs,但是很多地方与VBS的编码习惯还是有所区别
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-3-23 09:12:07 | 只看该作者
原帖由 dreamever 于 2009-3-22 10:18 发表
Dim bname
bname =Browser("测试系统").GetRoProperty("name")
这样写的话应该就可以了.
如果只写Browser的话,QTP中并没有Browser这个内置对象,因此不能像调用Err.Number那样调用Browser.GetRoProperty("name")  ...


看来是不能取得动态窗口的名字了!哎
如果用bname =Browser("测试系统").GetRoProperty("name") 这样的语句,我何必要取窗口名字呢 ,因为这句话中就以及假定你知道了窗口名称,这样又何必去取呢。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-3-23 09:40:42 | 只看该作者

回复 3# 的帖子

bname =Browser("CreationTime:=0").GetRoProperty("name")
CreationTime:QTP启动后打开的IE的次序,从 0 开始。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-3-23 09:57:48 | 只看该作者
------------------------------------------------------------------------------
Dim oIE
Set oIE=Description.Create
oIE("regexpwndtitle").value=" Windows Internet Explorer"
Set le=desktop.ChildObjects(oIE)
iCount=le.count
msgbox iCount
For i=0 to iCount-1
        msgbox le(i).GetRoProperty("text")
Next
---------------------------------------------------------------
试试这个行不行
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-3-23 14:00:03 | 只看该作者

回复 4# 的帖子

原帖由 jinsen 于 2009-3-23 09:40 发表
bname =Browser("CreationTime:=0").GetRoProperty("name")
CreationTime:QTP启动后打开的IE的次序,从 0 开始。



这个方法,挺好,比较简单实用
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-3-23 14:04:06 | 只看该作者

回复 5# 的帖子

原帖由 xiaoyaoke 于 2009-3-23 09:57 发表
------------------------------------------------------------------------------
Dim oIE
Set oIE=Description.Create
oIE("regexpwndtitle").value=" Windows Internet Explorer"
Set le=desktop.ChildObje ...

这个办法稳定性好,但是这速度不好保证,
使用描述性编程速度会下降很多的。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-17 10:45 , Processed in 0.078649 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表