2
我有这样的测试:browser.wait()为NG-if指令
it('should get alert', function() {
browser.wait(element(by.css('[ng-if="alert"]')).isPresent());
var alert = element(by.binding('alert'));
expect(alert.getText()).toBe('Copy clicked!');
});
为这个网站:
<div ng-if="alert" class="ng-scope">
<br>
<b layout="row" layout-align="center center" class="md-padding">
{{alert}}
</b>
</div>
的浏览器不等待警报块存在,因此测试失败。如果我使用browser.sleep()
等待它,那么它可以工作,但我不想使用browser.sleep()
。我曾尝试使用browser.wait()
与xpath,css路径,className和您在问题中看到的css。这些都没有奏效。是否有可能告诉浏览器等待ng-if块?
SOLUTION:
it('should get alert', function() {
browser.wait(function() {
return element(by.css('[ng-if="alert"]')).isPresent();
), 10000};
var alert = element(by.binding('alert'));
expect(alert.getText()).toBe('Copy clicked!');
});
我收到一个错误,说明等待在大约40ms后超时。有没有办法告诉它最大或最小的等待时间? –
没关系我想通了。只需要在最后加上“,10000”。感谢您的帮助:) 更新了我的问题,以及 –