我正在使用量角器1.7.0和角度1.2。
我有一个功能,当我点击一个按钮说'加载结果'时,ajax请求被触发,同时结果回来我看到一个按钮说'取消请求'(取消正在进行的ajax请求,这个按钮获取收到ajax响应时隐藏。)
现在要在量角器中测试它,我正在做这样的事情
//to load the results
element(by.css('#load-results')).click();
//to cancel ongoing ajax request to load results
element(by.css('.search-cancelled')).then(function(){
element(by.css('.search-cancelled')).click();
});
它给我一个错误,说明元素不可见。
据我所知,量角器在执行下一个语句之前等待角度来解决它的承诺。所以直到它达到这个代码为止
element(by.css('.search-cancelled')).then(function(){
element(by.css('.search-cancelled')).click();
});
ajax调用已经返回,这就是元素被隐藏的原因。
有没有办法可以让量角器不等待角度承诺并在ajax请求进行时执行我的代码?
答案 0 :(得分:1)
看起来你可以这样做:
$('#load-results').click();
waitElementToBeShown($('.search-cancelled'));
$('.search-cancelled').click();
以下是帮助功能的代码:
var waitElementToBeShown = function (elm) {
browser.wait(function () {
return elm.isPresent();
},15000);
browser.wait(function () {
return elm.isDisplayed();
},15000);
};