量角器无法通过绑定找到元素

时间:2016-05-23 14:42:24

标签: protractor

我试图通过绑定找到一个元素,问题是该元素是一个toast。

我正在使用:

element(by.css('.btn-primary3')).click()

模拟点击。因此,在测试期间,吐司确实出现在浏览器中。

然后我尝试将元素存储在变量中,并测试toast的文本值是否等于预期值。

var toast = element(by.binding('toast.toast.title'));
expect(toast.getText()).toEqual('Inloggen mislukt');

但是这里会弹出错误。

Failed: No element found using locator: by.binding("toast.toast.tile")

当我检查Chrome开发工具中的toast元素时,它会显示如下,

<div data-ng-repeat="toast in activeToasts">
    <span data-ng-bind="toast.toast.title" class="ng-binding"> Inloggen mislukt</span>
</div>

我认为问题来自于这样一个事实:当加载页面时,包含绑定的范围不存在于dom中。单击按钮时会创建它。

2 个答案:

答案 0 :(得分:1)

如果是这种情况,请在点击按钮后wait for the presence of the element

element(by.css('.btn-primary3')).click();
var toast = element(by.binding('toast.toast.title'));

browser.wait(EC.presenceOf(toast), 5000);
expect(toast.getText()).toEqual('Inloggen mislukt');

答案 1 :(得分:0)

请您尝试:

<div data-ng-repeat="toast in activeToasts">
    <span data-ng-bind="toast.toast.title" class="ng-binding"> Inloggen mislukt</span>
</div>