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」。感謝您的幫助:) 更新了我的問題,以及 –