量角器isDisplayed错误地返回false为可见元素

时间:2016-06-16 08:48:41

标签: angularjs twitter-bootstrap protractor

我有一个引导程序" loading"警报消息,我使用ng-show有条件地显示,而点击按钮后正在加载API调用的结果。

标记是:

<div class="alert alert-info" data-ng-show="loading" id="a-message">
    loading...
</div>

量角器代码是:

expect(element(by.id('a-message')).isDisplayed()).toBe(true); // returns true
element(by.id('fetch-data')).click(); // The click handler sets $scope.loading = true, and the loading message becomes visible

browser.wait(function () {
        return element(by.id('a-message')).isDisplayed().then(function (displayed) {
            return displayed;
        });
    }, 10000);
expect(element(by.id('a-message')).isDisplayed()).toBe(true);

加载完成后,$ scope.loading设置为false; 我可以看到加载消息出现然后消失,但控制台日志始终为false。

我的问题是:

  1. 这可以测试吗?即Protractor是否能够在页面等待API调用在后台返回数据时测试加载消息的可见性?
  2. 如果可以测试,我做错了什么?
  3. 非常感谢任何帮助。

0 个答案:

没有答案