Проблема в синхронизации: функция invoke
возвращает Обещание, которое выполняется асинхронно.Код cy.log(pin)
выполняется сразу после вызова invoke
и до разрешения обещания.
Попробуйте:
cy.get('.pin-field').invoke('text').then(pin => {
cy.log(pin);
})
Или вы можете смоделировать синхронное поведение с помощью async/await
:
async function login(cy) {
const pin = await cy.get('.pin-field').invoke('text'); // call it synchron
cy.log(pin); // this code executes when 'invoke` returned
}
Не забудьте, код с await
должен быть закрыт в функции async
.