百度空间 | 百度首页 
 
查看文章
 
QTP中ChildObjects函数
2006-08-03 11:01

   前段时间闲的无聊,就打开QTP的Help随意看看。看到ChildObjects函数,然后就看了下Help中的说明:

Description

Returns the collection of child objects contained within the object.

返回所有对象中的子对象。

那不是可以不用把当前页面的每个对象都添加到Object Repository中也可以运行了。

之后详细的看了该函数的Example:

Sub ChildObjects_Example()
'The following example uses the ChildObjects method to find all the
'list objects on a Web page, and then to select an item in each list.
'建立一个空属性的对象
Set oDesc = Description.Create()
'在空的对象中添加属性micclass,并赋值为“WebList”
oDesc("micclass").Value = "WebList"
'在制定界面上获取所有属性值为”“weblist”的对象,并赋值给List(注意:赋值后lists类型一个对象数组)
Set Lists = Browser("Mercury Interactive").Page("Mercury Interactive").ChildObjects(oDesc)
'获取lists里面所有对象的总数
NumberOfLists = Lists.Count()
'遍历数组中所有对象
 For i = 0 To NumberOfLists - 1
'使用了WebList对象的select的方法
Lists(i).Select i + 1
Next
End Sub

看完例子,就开始自己编写功能函数了:

该函数的工作原理如下:可以获取所有界面上的Link对象(不用把要使用的Link 对象添加到Object Repository中),并可对这指定的LinkNmae进行点击操作。

Function WebLinkClick_Function_Module(IsHaveFrame,Object_Browser,Object_page,Object_Frame,LinkName)

Dim m_Link
Dim All_Link
Dim Count
Dim AllLinkName(3000)
Dim i,j,k
k = 0

If  IsHaveFrame= "" OR IsHaveFrame>1 Then
 IsHaveFrame = 1
End If

Set m_Link=Description.Create()
m_Link("Link").Value="link"
If  IsHaveFrame  = 0 Then
    Set All_Link=Browser("" & Object_Browser & "").Page("" & Object_page & "").ChildObjects(m_Link)
 Else
   Set All_Link=Browser("" & Object_Browser & "").Page("" & Object_page & "").Frame("" & Object_Frame & "").ChildObjects(m_Link)
End If

Count=All_Link.Count()
 For  i= 0 To Count -1
     AllLinkName(j) =All_Link(i).GetROProperty( "Text" )
    If  AllLinkName(j) =LinkName Then
         All_Link(i).click
         Exit For
 End If
 j = j +1
   Next
End Function


类别:文章 | 添加到搜藏 | 分享到i贴吧 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2006-08-03 11:14 | 回复
踩一脚
 
2
2009-06-10 09:11 | 回复
学习了 
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu