【发布时间】:2017-10-13 15:57:19
【问题描述】:
我对 e2e 测试和使用量角器 / jasmine 框架非常陌生。我知道如何获取元素数组以及如何单击锚点。但是如何/甚至可以点击元素选择器/中继器返回的锚点列表?
我一直在尝试各种方法,但作为一个例子(最新的一个还没有被删除,哈哈)这是我得到的:
element.all(by.repeater('link in links')).then(function(links) {
links.forEach(function(link) {
link.click().then(function() {
console.log('callback for click ');
});
});
});
这似乎需要第一个元素并点击,但是下一次迭代它会挂起(我明白为什么,但很难找到解决方法 - 这是我需要考虑的某种承诺和解决因素帐户?)
返回的错误是
失败:过时的元素引用:元素未附加到页面文档
任何指导/帮助链接将不胜感激 - 到目前为止,谷歌搜索还没有向我返回任何值得注意的信息...
提前致谢!
【问题讨论】:
-
尝试以下操作:
element.all(by.repeater('link in links')).then(function(links){ for (var i = 0; i < links.length; i++){ (function(test){ links.get(i).click(); })(links[i]); } });抱歉标记不好,但我认为它不值得作为答案,因为它最多只是猜测。 -
嘿,不用担心。我确实尝试过类似的东西。不幸的是,这会返回一个错误,指出对象没有方法 'get' --> 失败:对象 [object Object],[object Object],[object Object] 没有方法 'get'
-
我假设您尝试过同样的方法,但不是
links.get(i).click,links[i].click? -
@TomNijs 我尝试用
test.click();替换links.get(i).click();但这会在原始帖子中返回相同的 stale element reference 错误:( -
@TomNijs
links[i].click返回相同的过时元素问题
标签: javascript angularjs jasmine protractor