Тестирование транспортира во время HTTP-запроса приводит к противоречивым результатам - PullRequest
0 голосов
/ 26 апреля 2019

Следующий тест дает противоречивые результаты;иногда это проходит, иногда это терпит неудачу со следующим сообщением об ошибке:

× Should show progress bar during request
  - Expected false to be true, 'Progress bar must shown during login'.

Test:

it('Should show progress bar during request', () => {
    passwordResetRequestPage.populateForm('john.doe@domain.com');

    // Disable synchronisation to not wait for HTTP call to be complete
    // because the progress bar will be hidden at the end of the HTTP call.
    browser.ignoreSynchronization = true;

    passwordResetRequestPage.getSubmitButton().click();

    expect(passwordResetRequestPage.getProgressBar().isPresent())
        .toBe(true, 'Progress bar must shown during login');

    browser.ignoreSynchronization = false;
});

Методы из объекта страницы:

getSubmitButton(): ElementFinder {
    return element(by.css('button[type=submit]'));
}

getProgressBar(): ElementFinder {
    return element(by.tagName('mat-progress-bar'));
}

populateForm(email: string) {
    const emailInput = element(by.css('input[formcontrolname=email]'));
    emailInput.clear();
    emailInput.sendKeys(email);

    // Move focus away from inputs
    element(by.tagName('mat-card-title')).click();
}

Когда яне включайте ignoreSynchronization, тест не проходит постоянно.

Я пытался использовать ExpectedConditions.presenceOf с browser.wait, но это выдает No element found using locator error.

...