Я пытаюсь получить текст из элемента в транспортире, и после того, как что-то сделал с текстом, я хочу щелкнуть по тому же элементу.Это то, что у меня есть
HTML:
<span class="span-user" id="spanuser"> {{user?.login}}</span>
Тест транспортира:
describe('Login OK with correct pass', () => {
it('should login successfully with admin account', () => {
// logging
username.clear();
username.sendKeys('admin');
password.clear();
password.sendKeys('admin');
element(by.css('button[type=submit]')).click();
// check if the username <span> has the current login username
const expect2 = /admin/;
const spanuser = element(by.css('span#spanuser'));
spanuser.getText().then((value) => {
console.log('inside');
console.log(value ? value : 'no value');
expect(value).toMatch(expect2);
});
// then i try to click on the same span, to do some stuff
spanuser.click().then(() => {
console.log('It has been pressed!');
});
});
});
Первая часть работает просто отлично, она проходит тест и проходит ожидание, но когда я пытаюсь выполнить функцию click () на промежутке, я получаю следующую ошибку:
Failed: истекло время ожидания завершения асинхронных угловых задач через 5 секунд.Это может быть потому, что текущая страница не является угловым приложением.Пожалуйста, смотрите FAQ для более подробной информации: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular
Во время ожидания элемента с локатором - Локатор: By (селектор CSS, span # spanuser)
Что я пробовал:
browser.waitForAngular () перед spanuser.click ()
browser.wait (10000) перед spanuser.click ()
также у меня есть waitForAngular () в функции beforeAll.
У кого-нибудь есть идеи по этому поводу?Это не имеет никакого смысла для меня, почему бы не найти тот же элемент, который уже нашел раньше?
Большое спасибо!