陆慷光洋摩托车怎么样:QTP - 参数化LINK的方法汇总 - whoamiyaya的学习天地 - 51Test...

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 06:07:48
whoamiyaya的学习天地 继续学习精华贴,发现又一个topic不错 - 参数化LINK的方法。也就是我怎样check一个page上所有类似属性的link,其实就是把所有类似属性的link都点一遍,然后可以做一些什么check。

【转】以下帖子总结了4种方法:
http://bbs.51testing.com/viewthread.php?tid=104648&extra=&page=1

第一种:利用 Description 对象
For intLoop = 1 to N
    strText=DataTable.Value(...)
    Set LinkDesc = Description.Create()
    LinkDesc ("Text").Value = strText
    Browser("").Page("").Link(LinkDesc).Click
    DataTable.GetSheet("").SetNextRow
Next
第二种:描述性编程
For intLoop = 1 to N
    strText=DataTable.Value(...)
    Browser("").Page("").Link("text:=" & strText).Click
    DataTable.GetSheet("").SetNextRow
Next
第三种:利用SetToproperty方法(以sina为例)
Step1:录制
Browser("新浪首页").Page("新浪首页").Link("墨尔本北航热招营销硕士").click
此时对象库如图1

Step2:欲点击其他新闻(等于是用同一个录制好的link对象,只是改变其text属性,然后click的时候就会等于click不同的link,因为link(“”)括号里的只是对象名,可以在object repository里改,并不是任何属性)
Browser("新浪首页").Page("新浪首页").Link("北大私募基金/企业上市").Click
'点击北大...新闻
Browser("新浪首页").Page("新浪首页").Link("北大私募基金/企业上市").SetTOProperty"text","清华深圳创业板/私募班"
Browser("新浪首页").Page("新浪首页").Link("北大私募基金/企业上市").Click
'点击清华...新闻
Setp3:写循环语句
For intLoop = 1 to N
    strText=DataTable.Value(...)

    Browser("新浪首页").Page("新浪首页").Link("北大私募基金/企业上市").SetTOProperty"text","strText"
    DataTable.GetSheet("").SetNextRow
Next

第四种:利用参数化对象的Text属性实现(这个也是新知道的,object repository里的属性居然也能参数化)
Step1:录制
Browser("新浪首页").Page("新浪首页").Link("墨尔本北航热招营销硕士").click
此时对象库如图1


Step2:参数化Text属性,见下图2,步骤省略


Step3:写循环或者设置Action run call propertiesrun on all rows即可

 

 

其中,第三种方法在另一个帖子里我找到了实例,并且实践了一下(下面的例子和上面4个方法还有一个不同是,上面4个方法link的text属性从datatable中获取,这里是自动从页面获取):
http://bbs.51testing.com/thread-20178-1-4.html

Browser("Browser").Page("Page").Sync (这个是blank页面的对象,可以用添加到对象库来添加)
Browser("Browser").Navigate("
http://bbs.51testing.com/default.php")
Browser("51Testing软件测试论坛 软件测试 |").Page("51Testing软件测试论坛 软件测试 |").Sync

Set tags=Browser("51Testing软件测试论坛 软件测试 |").Page("51Testing软件测试论坛 软件测试 |").Object.links
Dim i,j, arr()
i=0
For Each element in tags
    If Ucase(element.tagName)="A" and left(element.InnerText,1)="[" Then
ReDim Preserve arr(i+1)
     arr(i)=element.InnerText
    i=i+1
end if
Next

For j=0 to i
Browser("51Testing软件测试论坛 软件测试 |").Page("51Testing软件测试论坛 软件测试 |").Link("[软件测试新手上路]").SetTOProperty "Text",arr(j)
            Browser("51Testing软件测试论坛 软件测试 |").Page("51Testing软件测试论坛 软件测试 |").Link("[软件测试新手上路]").Click
Browser("51Testing软件测试论坛 软件测试 |").Back
Next

练习代码路径:Test\ClickURL