При запуске теста e2e тест включает в себя вход в систему компьютера с указанным адресом электронной почты и паролем с использованием API входа Google.После входа в систему навигационная панель изменится, сказав «Войти в систему».Я пытаюсь подождать в моем тестовом примере, пока не появится Logout, но транспортир никогда не распознает его, даже если я вижу его при запуске теста.
Я переключил ожидание на домашнюю иконку, которая всегда отображается на панели навигации, и тестовый пример проходит.
Я также добавил код, чтобы посмотреть, может ли он нажать кнопку выхода из системы, и это работает.Так что теперь я очень смущен, почему browser.wait никогда не разрешает выход из системы.
navbar.component.html (частичный)
<ul fxLayout fxLayoutGap="20px" class="navigation-items">
<li>
<a routerLink='/'>
<mat-icon id="home-icon" class="icon">home</mat-icon>
<span class="label">Home</span>
</a>
</li>
<li>
<a>
<mat-icon id="input-icon" class="icon">account_circle</mat-icon>
<div *ngIf="auth.user$ | async; then user else guest"></div>
<ng-template #user>
<span class="label" id="logout" (click)="auth.signOut()">Logout</span>
</ng-template>
<ng-template #guest>
<span class="label" id="login" (click)="auth.googleSignin()">Login</span>
</ng-template>
</a>
</li>
</ul>
контрольный пример
describe('Student Component e2e tests', () => {
const ec = protractor.ExpectedConditions;
const BROWSER_WAIT = 5000;
beforeAll(() => {
this.signInButton.click();
this.loginToGoogle();
// browser.sleep(5000);
// element(by.id('logout')).click(); // able to click logout button
// browser.sleep(5000);
browser.wait(ec.visibilityOf(element(by.id('logout'))),
BROWSER_WAIT);
});
it('should find Logout button', () => {
expect(element(by.id('logout')).isPresent()).toBe(true);
});
});
Я ожидаю, что вывод вернется без ошибок, но фактический вывод вернетошибка истечения времени ожидания.
Чтобы воссоздать клон репозитория https://github.com/ChadwickSchool/Weight-Lifting-App/tree/logout-test-error
Затем выполните команды
git checkout logout-test-error
npm install
ng e2e