Jestem nowy na kątomierz i próbuję przetestować zdarzenia popover, tutaj jest mój kod:Jak wytłumaczyć używając browser.sleep w kątomierz
describe('popover directive', function() {
var buttons= element.all(by.tagName('button'));
it('should show the popover title by clicking', function() {
var popTitle="testTitle";
var popContent="testContent";
element(by.model('title')).clear().sendKeys(popTitle);
element(by.model('content')).clear().sendKeys(popContent).then(function(){
buttons.get(0).click().then(function(){
browser.sleep(1000);
expect(element(by.className('popover-title')).getText()).toMatch(popTitle);
expect(element(by.className('popover-content')).getText()).toMatch(popContent);
});
});
buttons.get(0).click();
browser.sleep(1000);
expect(element(by.css('[class="popover fade top in"]')).isPresent()).toBe(false);
});
});
1.If nie mam dodać opóźnienia kodu czasowego jak browser.sleep()
, test nie powiedzie się i wyświetla komunikat:
NoSuchElementError: No element found using locator: By.className('popover-title')
to możliwe, aby nie dodawać opóźnienia kodu czasu ... jak browser.sleep()
? Jeśli to niemożliwe, jak ma sens ustawienie czasu snu? Czy to ma jakiś związek z animacjami CSS?
2.Użycie numeru browser.waitForAngular()
lub click().then(function(){...})
zamiast browser.sleep()
wydaje się nie działać, zostanie wyświetlony ten sam komunikat o błędzie.
Byłoby świetnie, gdyby ktoś mógł odpowiedzieć na te pytania, wielkie dzięki.
dziękuję @ Hankduan. Ta odpowiedź pomaga mi w końcu to zrozumieć i po prostu nie mogę się doczekać, aby zobaczyć Protractor 1.7! – Kiry
Użyłem powyżej, ale zauważyłem, że element nie występuje w bloku oczekiwania kodu. Jak sprawdzić, czy animacja jest załadowana? – EnugulaS