当前位置: 首页 > 知识库问答 >
问题:

量角器-失败:过时的元素引用:元素未附加到页面文档

汪博达
2023-03-14

失败:过时的元素引用:元素未附加到页面文档

我尝试在for循环的每次迭代中获取元素,但是for循环在第一次解析promise之前执行,这意味着x的“limit”值被重复传递,测试只是在同一个下拉选项上单击几次。

this.uncheckColumns = function(limit) {
    element(by.className('fa-cog')).click();
    element.all(by.className('multiSelectLi')).then(function(options) {
        for (x = 1; x < limit; x++) {
            options[x].click();
        };
    });
};

共有1个答案

岳正阳
2023-03-14

使用each(元素,索引):

element.all(by.className('multiSelectLi')).each(function(option, index) {
    if (index < limit) {
        option.click();
    }
});

或者,结合筛选器(元素,索引):

element.all(by.className('multiSelectLi')).filter(function(option, index) {
    return index < limit;
}).each(function(option) {
    option.click();
});

还有一种解决问题的简单方法(在循环中连续调用element.all()):

for (var index = 0; index < limit; index++) {
    var option = element.all(by.className('multiSelectLi')).get(index);
    option.click();
};
 类似资料: