如何解决动态对象作为参数传递的问题
例如: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)'这里是一个获取当前页数据的函数,返回当前页的数据集合
IfTF Then
GiftID=MergeArray(GiftID,ID)'这里是一个合并数组函数,返回合并后的数组(函数不存在问题)
else
GiftID=ID
End If
IfintRow=11 and objLink.Exist(1) Then
objLink.Click '点击翻页
TF=True
else
Exit do
End If
Loop
FunMergeGiftID=GiftID
End Function
以上代码执行后的结果是:翻了多少页,第一页的数据就被获取了多少遍
分析原因估计是由于WebTable对象参数翻页后发生变化,但函数调用时传入的对象参数却是固定值,因此才造成问题
想请教大家是否有好的解决办法?
动态的对象参数是否有效地传入函数? 你可尝试了下,重新识别该对象?!重新获得该对象好再进行操作?! 我不封装成用函数,而直接在QTP脚本中使用的话,它就会重新进行识别
如果想把它封装成函数,不知道该如何重新识别对象? 或者说,在函数内部的对象,无法重新识别对象? objWebTable对象可能要放到循环中取值 想来应该也只能改结构了。感谢大家的帮助!
页:
[1]