访问驻留在另一个对象中的对象的属性

Accessing the properties of an Object that resides in another Object

我正在使用 UFT 和 VBS,我正在从 JavaScript 命令获取一个对象,该命令包含 return 其他对象,但我无法访问这些对象属性。

详细:

  1. I 运行 在 UFT 中的命令 returns 来自 SlickGrid table 的所有数据。命令是 grid.getData(); 并且 return 是一个对象。
  2. 此对象设置为对象变量 objListArray,层次结构为:
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

各种其他组合 return 一般错误。

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

尝试通过这种方式访问​​。

objListArray(0)("Property1")

objListArray(0).Item("Property1")

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

我好像记得 UFT 已经自己解决了这个问题,所以尝试使用 .item,如果这不起作用,您可以尝试我上述答案中的建议。

我意识到对象是 JScriptTypeInfo 类型

为了访问它,我可以使用以下命令:

objListArray.[0].Property1

现在,要遍历对象,您可以这样做:

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