角度1.6.3のウェブサイトで分度器4.0.14を使用しています。2つの同一の分度器テストが連続して2回目に失敗しました
私は同じテストを2回実行します。最初のものは成功しますが、2番目のものは成功しません。何か案が ?
it('Should return a toast error on inferior amount', function() {
$$('#purposeList input.amount').first().clear().sendKeys('4999');
$$('button[type="submit"]').get(0).click();
expect($('div.toast.toast-error').isPresent()).toBe(true);
element.all(by.model('purpose.amount')).first().clear();
$$('button.toast-close-button').each(function (item) {
item.click();
});
expect($('button.toast-close-button').isPresent()).toBe(false);
});
it('Should return a toast error on inferior amount BIS', function() {
$$('#purposeList input.amount').first().clear().sendKeys('4999');
$$('button[type="submit"]').get(0).click();
expect($('div.toast.toast-error').isPresent()).toBe(true);
element.all(by.model('purpose.amount')).first().clear();
$$('button.toast-close-button').each(function (item) {
item.click();
});
expect($('button.toast-close-button').isPresent()).toBe(false);
});
フィールドには間違った金額が入力されているため、送信時にトーストエラーが発生します。手動で行うと、トーストエラーが発生します。分度器でそれを行うとき、同じテストの最初のものだけが通過します。もう一方では、トーストは決して発射されないか、または本当にすぐに閉じられるように見えます。
私は眠ってみましたが、ブラウザの待機でignoreSynchronisationしました。エラートーストを扱うサービスで$タイムアウトを$ intervalに置き換えようとしましたが(他の$タイムアウトが存在する可能性もあります)。それは何も変わらなかった。
それは実際に失敗し、エラーからの実際の助けがない第二、それを期待して最初のですが、それだけで偽の代わりに、真の期待です:
Message:
Expected false to be true.
編集:
だから、@ LostJonは、すべての約束を処理することによって、あなたは次のような意味ですか:
it('Should return a toast error on inferior than authorized purpose amount on step 1 BIS', function() {
$$('#purposeList input.amount').first().clear().then(function() {
$$('#purposeList input.amount').first().sendKeys('4999').then(function() {
$$('button[type="submit"]').get(0).click().then(function() {
expect($('div.toast.toast-error').isPresent()).toBe(true);
element.all(by.model('purpose.amount')).first().clear().then(function() {
$$('button.toast-close-button').each(function (item) {
item.click();
}).then(function() {
expect($('button.toast-close-button').isPresent()).toBe(false);
});
});
});
});
});
});
私は同じ結果を試しました。
編集:
どうやらそれは前の待機の代わりに、中にあったignoreSynchronization =本当でした。私はbrowser.manage().timeouts()。implicitlyWait(2000)も設定していますので、同期を取らずに要素を待っていましたが、正確ではありませんでした。
質問に追加情報を追加できますか? 最初のクリック後に何が起こるか、サンプルHTML、どこで失敗したか、コンソールに表示されたエラーなど –
どちらが失敗したか最初に特定できますか?あなたは2つを区別するためにconsole.logを置くことができます –