gpt4 book ai didi

vbscript - QTP:对象有效时需要对象错误

转载 作者:行者123 更新时间:2023-12-03 22:26:08 24 4
gpt4 key购买 nike

我在可重用操作中有以下 VBScript:

'Gather links
Browser("1").Navigate "http://InternalWebmail/something/inbox.nsf"
set oDesc = Description.Create()
oDesc("micclass").Value = "Link"
set links = Browser("1").Page("Webmail").ChildObjects(oDesc)
Dim links2
links2 = ""

'Filter out irrelevant links
For i = 0 To links.Count-1
If lcase(trim(links(i).GetROProperty("text"))) = lcase(trim(DataTable("ExpectedFrom", dtGlobalSheet))) Then
links2 = links2 + "," + links(i).GetROProperty("url")
End If
Next

Dim final
final = split(mid(links2,2),",") 'Remove leading comma and split into array

'For each link (i.e. for each E-mail received):
'Effectively giving a reusable action an input parameter, I hope

For i = 0 To final.Count - 1 'error: Object Required
DataTable("url","CheckHeader") = final(i)
RunAction "CheckHeader", oneIteration
Next

一切都运行得很好,直到我到达代码段底部的循环声明。在那里,QTP 给了我一个错误“需要对象”并拒绝详细说明。
  • 我的前导值为 58,但我已尝试在进入循环之前将其设置为 0。
  • final 是一个包含 6 个字符串的数组,每个字符串都是一个 URL。都有一个值(value)。
  • 如果我 msgbox(final(2)),我认为 final(2) 的值是有效的。
  • isobject(final(1)) = false
  • final(1) 具有正确的值
  • msgbox(final is nothing) 和 msgbox(final(1) is nothing) 产生相同的错误。

  • 看起来好像数组为空但不知何故数组有成员?
    这怎么可能?
    QTP 在说什么?

    最佳答案

    在 vbscript 数组中没有 Count属性,你应该使用 UBound

    x = split("how now brown cow")
    ' MsgBox x.Count ' error
    MsgBox UBound(x) ' 3

    原因 .Count为第一个循环工作的是 ChildObjects不返回数组,它返回一个 COM 集合对象。这也是您必须使用 Set 的原因。赋值给 links 时的语句但不是分配给 final .

    关于vbscript - QTP:对象有效时需要对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/558198/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com