onlonely 发表于 2009-3-22 01:28:33

GetRoProperty无法获取窗口根对象属性问题


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


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

但是
Dim bname
bname =Browser.GetRoProperty("name")
这样的代码就不能获得属性了。
提示是:不支持这种方法。

因为我想取得当前窗口名字,可是一直不能成功取到。
虽然我有另外方法绕过取到窗口名字这个步骤,可我希望能够找到解决这个问题的办法。希望那个高手指点下。
即时真的无法取到我也要明白原因

dreamever 发表于 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的编码习惯还是有所区别

onlonely 发表于 2009-3-23 09:12:07

原帖由 dreamever 于 2009-3-22 10:18 发表 http://bbs.51testing.com/images/common/back.gif
Dim bname
bname =Browser("测试系统").GetRoProperty("name")
这样写的话应该就可以了.
如果只写Browser的话,QTP中并没有Browser这个内置对象,因此不能像调用Err.Number那样调用Browser.GetRoProperty("name")...

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

jinsen 发表于 2009-3-23 09:40:42

回复 3# 的帖子

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

xiaoyaoke 发表于 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
---------------------------------------------------------------
试试这个行不行

onlonely 发表于 2009-3-23 14:00:03

回复 4# 的帖子

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


这个方法,挺好,比较简单实用

onlonely 发表于 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]
查看完整版本: GetRoProperty无法获取窗口根对象属性问题