51Testing软件测试论坛

标题: GetRoProperty无法获取窗口根对象属性问题 [打印本页]

作者: onlonely    时间: 2009-3-22 01:28
标题: GetRoProperty无法获取窗口根对象属性问题

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


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

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

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

因为我想取得当前窗口名字,可是一直不能成功取到。
虽然我有另外方法绕过取到窗口名字这个步骤,可我希望能够找到解决这个问题的办法。希望那个高手指点下。
即时真的无法取到我也要明白原因
作者: dreamever    时间: 2009-3-22 10:18
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
原帖由 dreamever 于 2009-3-22 10:18 发表
Dim bname
bname =Browser("测试系统").GetRoProperty("name")
这样写的话应该就可以了.
如果只写Browser的话,QTP中并没有Browser这个内置对象,因此不能像调用Err.Number那样调用Browser.GetRoProperty("name")  ...


看来是不能取得动态窗口的名字了!哎
如果用bname =Browser("测试系统").GetRoProperty("name") 这样的语句,我何必要取窗口名字呢 ,因为这句话中就以及假定你知道了窗口名称,这样又何必去取呢。
作者: jinsen    时间: 2009-3-23 09:40
标题: 回复 3# 的帖子
bname =Browser("CreationTime:=0").GetRoProperty("name")
CreationTime:QTP启动后打开的IE的次序,从 0 开始。
作者: xiaoyaoke    时间: 2009-3-23 09:57
------------------------------------------------------------------------------
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
标题: 回复 4# 的帖子
原帖由 jinsen 于 2009-3-23 09:40 发表
bname =Browser("CreationTime:=0").GetRoProperty("name")
CreationTime:QTP启动后打开的IE的次序,从 0 开始。



这个方法,挺好,比较简单实用
作者: onlonely    时间: 2009-3-23 14:04
标题: 回复 5# 的帖子
原帖由 xiaoyaoke 于 2009-3-23 09:57 发表
------------------------------------------------------------------------------
Dim oIE
Set oIE=Description.Create
oIE("regexpwndtitle").value=" Windows Internet Explorer"
Set le=desktop.ChildObje ...

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




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