51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1973|回复: 5
打印 上一主题 下一主题

[原创] 如何解决动态对象作为参数传递的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-4-22 15:30:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
例如:
Dim objWebTable
Dim objLink
set objWebTable=Browser("×××").Page("×××").Frame("main").WebTable("礼品编号")
set objLink=Browser("×××").Page("×××").Frame("main").Link("后页")
MergeGiftID=FunMergeGiftID(objWebTable,objLink)

Function FunMergeGiftID(objWebTable,objLink)
Dim strText
Dim intRow
Dim TF
Dim ID
Dim GiftID

TF=false
Do
'strText=objWebTable.Object.outerHTML
'intRow=objWebTable.Object.rows.length
strText=objWebTable.GetROProperty("outerHTML")
intRow=objWebTable.GetROProperty("rows")
ID=FunGiftID(strText)  '这里是一个获取当前页数据的函数,返回当前页的数据集合
If  TF Then
    GiftID=MergeArray(GiftID,ID)  '这里是一个合并数组函数,返回合并后的数组(函数不存在问题)
        else
        GiftID=ID
End If
If  intRow=11 and objLink.Exist(1) Then
        objLink.Click         '点击翻页
        TF=True
        else
        Exit do
End If
Loop
FunMergeGiftID=GiftID
End Function

以上代码执行后的结果是:翻了多少页,第一页的数据就被获取了多少遍
分析原因估计是由于WebTable对象参数翻页后发生变化,但函数调用时传入的对象参数却是固定值,因此才造成问题
想请教大家是否有好的解决办法?
动态的对象参数是否有效地传入函数?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-4-22 16:39:30 | 只看该作者
你可尝试了下,重新识别该对象?!重新获得该对象好再进行操作?!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-4-22 16:52:36 | 只看该作者
我不封装成用函数,而直接在QTP脚本中使用的话,它就会重新进行识别
如果想把它封装成函数,不知道该如何重新识别对象?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-4-22 16:55:14 | 只看该作者
或者说,在函数内部的对象,无法重新识别对象?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-4-23 09:50:29 | 只看该作者
objWebTable对象可能要放到循环中取值
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-4-26 15:54:56 | 只看该作者
想来应该也只能改结构了。感谢大家的帮助!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-4 13:48 , Processed in 0.076035 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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