访问驻留在另一个对象

时间:2015-09-11 13:47:38

标签: javascript vbscript qtp hp-uft

我正在使用UFT和VBS,我从JavaScript命令中获取一个返回其他对象的对象,但我无法访问这些对象属性。

详细说明:

  1. 我在UFT中运行一个返回SlickGrid表中所有数据的命令。命令为grid.getData();并返回一个对象。
  2. 此对象设置为对象变量objListArray,层次结构为:
  3. objListArray (Object)
          |
          |---0 (Object)
          |        |
          |        |---Property1 : Value
          |        |---Property2 : Value
          |        |---Propertyx : Value
          |        
          |---1 (Object)
          |        |
          |        |---Property1 : Value
          |        |---Property2 : Value
          |        |---Propertyx : Value
          |
          |---2 (Object)
          |        |
          |        |---Property1 : Value
          |        |---Property2 : Value
          |        |---Propertyx : Value
          |
          |---n (Object)
                   |
                   |---Property1 : Value
                   |---Property2 : Value
                   |---Propertyx : Value
    

    无论我尝试什么,我都无法访问对象的属性。 我有什么想法可以访问这些属性?我仅限于VBS,因为这是UFT脚本。

    到目前为止,我尝试过没有成功:

    objListArray(0).Property1   '--> Generic error
    
    For Each x in objListArray  '--> Object does not support that
    

    返回一般错误的各种其他组合。

3 个答案:

答案 0 :(得分:1)

在UFT中访问JavaScript数组时出现问题,请参阅my answer to another such question

我似乎记得UFT已经自己解决了问题,所以尝试使用.item,如果这不起作用,你可以尝试我前面提到的答案的建议。

答案 1 :(得分:1)

我意识到该对象的类型为JScriptTypeInfo

为了访问它,我可以使用下面的文字:

objListArray.[0].Property1

现在,要迭代对象,你可以这样做:

For i = 0 To objListArray.Length-1
    x =  eval("objListArray.[" & index & "].[Account Number]")
    'Do anything you want with x
Next

答案 2 :(得分:0)

我认为它可能是字典对象的集合(字典中的字典)。

尝试以这种方式访问​​。

objListArray(0)("Property1")

或者

objListArray(0).Item("Property1")