browser.wait() 用于 ng-if 指令
browser.wait() for ng-if directive
我有这个测试:
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!');
});
为此 html:
<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 一起使用。 None 其中有效。甚至可以告诉浏览器等待 ng-if 块吗?
解决方案:
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!');
});
尝试 return 解析为布尔值的承诺:
browser.wait(function() {
var waitTimeInMilliseconds = 10000;
return element(by.css('[ng-if="alert"]')).isPresent()
}, waitTimeInMilliseconds);
如果有效请告诉我。
我有这个测试:
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!');
});
为此 html:
<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 一起使用。 None 其中有效。甚至可以告诉浏览器等待 ng-if 块吗?
解决方案:
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!');
});
尝试 return 解析为布尔值的承诺:
browser.wait(function() {
var waitTimeInMilliseconds = 10000;
return element(by.css('[ng-if="alert"]')).isPresent()
}, waitTimeInMilliseconds);
如果有效请告诉我。