2016-02-12 2 views
0

Я использую TestComplete с JScript-тестированием веб-страницы с элементами, объявляемыми в качестве переменной, чтобы упростить тестирование элемента позже. Все они имеют путь:TestComplete/JScript- Использование переменной в пути объекта

var check1 = Window.Panel(1).Panel(2).Panel(0).Panel(0).Panel(0).Panel(0).Panel(1).Panel(0).Label(0).Checkbox(0) 

элементы являются динамическими, так что никто не знает, сколько есть, когда тест выполняется. Я надеялся, был некоторый способ перебора и объявить элементы, но это означало бы объявить элемент, как это:

var check1 = Window.Panel(1).Panel(2).Panel(0).Panel(0).Panel(0).Panel(0).Panel(1).Panel(0).Label(x).Checkbox(0) 

где х является переменной счетчика. Проблема заключается в том, что TestComplete видит это как литерал и не распознает x как переменную.

Есть ли способ сделать это с помощью TestComplete с использованием JScript? Или преобразовать строку в объект? Думаю, я тоже с этим поработаю.

+0

Можете ли вы поместить здесь код, который присваивает значение «x»? –

+0

x = 1; Это просто переменная, которая может увеличиваться через цикл. – Brandy

+0

Ну, вы можете использовать метод aqConvert.VarToInt для неявного преобразования значения переменной в integer. Однако он должен иметь допустимый целочисленный тип даже без преобразования. Поскольку я не вижу, как вы объявляете переменную «x» и манипулируете ею, я подозреваю, что с этим что-то не так. –

ответ

0

Мое предположение заключается в том, что, поскольку вы храните ссылку в переменной check1, переменная x обновляется, но x в переменной check1 все еще сохраняет исходное значение (1).

Обходной путь Сохраните первую часть пути, статичную в переменной, затем обновите x и назначьте ее метке.

var path = Window.Panel(1).Panel(2).Panel(0).Panel(0).Panel(0).Panel(0).Panel(1).Panel(0); 

// path to the Checkbox 
path.Label(x).Checkbox(0); 

// or if you want to loop over it 
for (var x = 0, len = 8; i < len; x += 1) { 
    if (path.Label(x).Checkbox(0).value === 'something') { 
     console.log('hooray!'); 
    } 
} 
+0

Вот что я пытаюсь решить. Некоторый способ использовать переменную так, чтобы она получала новое значение, когда оно зацикливалось. Это часто возникает в моем тестировании, поэтому он будет убирать много работы, что я должен делать. – Brandy

+0

Я скорректировал свой ответ. Если у вас возникнут вопросы или если неясно, сообщите мне. – Dedicated

+0

Простите, что так долго, чтобы вернуться к вам, но я, наконец, смог попробовать этот метод. Это сработало. Я могу динамически объявлять объекты. Я фактически немного изменил его, чтобы использовать цикл while вместо цикла for. Я храню объекты в массиве. – Brandy

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