TestComplete/JScript- 在对象路径中使用变量

TestComplete/JScript- Using a variable in an object path

我正在使用 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)

其中 x 是计数器变量。问题是 TestComplete 将其视为文字路径并且不将 x 识别为变量。

有什么方法可以使用 JScript 对 TestComplete 执行此操作吗?或者将字符串转换为对象?我想我也可以使用它。

我的猜测是,由于您将引用存储在变量 check1 中,因此变量 x 已更新,但变量 check1 中的 x 仍保持其原始值 (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!');
    }
}