Peki, her tıklatımda click() 'i() kullanmalı mıyım?
Kesinlikle değil.
Açıölçer/WebDriverJS çözülmesi gereken bir sürü sözü kuyruk temelde
"Control Flow" adlandırılan bu mekanizmaya sahiptir çünkü gerekli değil
:
WebDriverJS bekleyen bir sürü sözü kuyruğunu tutar, için, kontrol akışını denilen yürütmeyi düzenli tutun.
ve Açıölçer doğal ve out-of-the-box Eğik bekler:
Artık bekler eklemem gerekiyor ve teste uyur. İletici , testinizde bir sonraki adımı otomatik olarak web sayfasının beklemedeki görevleri tamamladığından, test ve web sayfanızın senkronize edilmesini bekleyen için endişelenmenize gerek yoktur. oldukça düz ileri test koduna yol açan
:
Bazen
var elementToBePresent = element(by.css(".anotherelementclass")).isPresent();
expect(elementToBePresent.isPresent()).toBe(false);
element(by.css("#mybutton")).click();
expect(elementToBePresent.isPresent()).toBe(true);
senkronizasyon/zamanlama sorunları ya yaşarsanız, test altında uygulama olmayan Eğik, sen may olsa then()
ile açıkça click()
çözerek bunu çözmek ve tıklama callback'inde içinde devam etmektedir:
expect(elementToBePresent.isPresent()).toBe(false);
element(by.css("#mybutton")).click().then(function() {
expect(elementToBePresent.isPresent()).toBe(true);
});
Ayrıca, bu durumlarda kurtarma için Explicit Waits da var, ancak burada alakalı değil.
Kontrol Akışının geleceği söz konusudur. "Gelecekte, kontrol akışı kaldırılıyor" [WebDriver Kontrol Akışı] (https://github.com/angular/protractor/blob/master/docs/control-flow.md#disabling-the-control -flow) –