Я пробую TestCafe для приложения AngularJS (v1.6).
У меня есть button
, затем при нажатии открывается модальное окно (из начальной загрузки UI).Это прекрасно работает, когда я пробую себя в Chrome.
<button class="btn" ng-click="open()">Open</button>
Наше приложение требует аутентификации пользователя, а страница входа - , а не на основе углов.Эта фаза моего теста работает нормально.
Однако, когда сам тест выполняется, он «нажимает» кнопку, но ничего не происходит.
Я подозреваю, но не могу доказать, что он нажалдо правильной инициализации AngularJS на странице.
В результате некоторых исследований я обнаружил проект testcafe-angular-selectors и метод waitForAngular
, но, похоже, он применим только к Angular2 +.
import { Role, Selector } from 'testcafe';
const regularAccUser = Role('http://127.0.0.1:8080', async t => {
await t
.typeText('[name=username]', 'abc')
.typeText('[name=password]', '123')
.click('.btn-primary');
});
fixture`Characters Modal`;
test('modal title', async t => {
await t
.useRole(regularAccUser)
.navigateTo('http://127.0.0.1:8080/fake/page')
.click('.btn')
.expect(Selector('.modal-title').innerText).eql('Insert Symbol');
});
Добавление .wait(1000)
до того, как click
решит проблему.Angular не ждет загрузки.Я бы предпочел не иметь waits
в каждом тесте - есть ли другой метод, который я могу использовать?