2015-09-11 4 views
1

Я использую UFT и VBS, и я получаю объект из команды JavaScript, которая возвращает другие объекты, но я не могу получить доступ к этим объектам.Доступ к свойствам объекта, который находится в другом объекте

Подробно:

  1. Я бегу в UFT команду, которая возвращает все данные из таблицы SlickGrid. Команда grid.getData(); и возвращает объект.
  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 

различных других комбинаций, которые возвращают общую ошибку.

+0

Вы пробовали что-то вроде 'Set obj = objListArray (0)', а затем 'obj.Property1'? –

+0

Действительно, я пробовал ... Получение снова Неизвестная ошибка времени выполнения Строка (24): «Установить obj = objListArray (0)». Начните считать, что с VBS и UFT это невозможно. – nefelodamon

+0

Можете ли вы проверить, работают ли функции массива правильно? Например, 'objListArray.shift(). Свойство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 
0

Я думаю, что это может быть коллекция объектов словаря (словарь в словаре).

Постарайтесь получить доступ к этому пути.

objListArray(0)("Property1")

Или

objListArray(0).Item("Property1")

1

Там проблема с доступом к массивы JavaScript в UFT, пожалуйста, см my answer to another such question.

Я, кажется, помню, что UFT решили проблему самостоятельно, поэтому попробуйте использовать .item, если это не сработает, вы можете попробовать предложение из моего вышеупомянутого ответа.

+0

objListArray. [0] .Property1 сделал трюк! – nefelodamon

Смежные вопросы