У меня есть рабочий сценарий тестирования входа в систему. Я удалил свое имя пользователя и пароль для файла фикстуры, который затем хочу вызвать, чтобы заполнить поля имени пользователя и пароля. Может ли кто-нибудь указать мне в правильном направлении, как это должно быть сделано? Ниже приведен мой тестовый сценарий, в котором вызывается прибор для заполнения полей.
describe('My Login Test', function (){
it('Visit Risk App Landing Page', function (){
cy.visit('site url')
cy.get('button').click()
cy.get('a.auth0-lock-alternative-link').contains('Not your account?').click()
cy.get('input.auth0-lock-input').first()
.type(cy.fixture('loginUser').email)
cy.get('input.auth0-lock-input').last()
.type(cy.fixture('loginUser').password)
cy.get('button').click()
cy.url().should('eq','site url')
})
})


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я бы рекомендовал использовать псевдоним прибора.
см .: Доступ к данным прибора
Сначала создайте локальную переменную для прибора:
cy.fixture('loginUser').as('myUser');
затем, когда вы хотите получить доступ к его свойствам, это просто this.myUser.email или что-то в этом роде. Это изменит ваш тест на:
.type(this.myUser.email)
Надеюсь, это поможет с вашими проблемами? Но, как упоминал demouser123, нам понадобится фактическая ошибка, чтобы помочь вам.
Я получаю другую ошибку, когда пробую разные методы, когда я пробую метод Стивенса: cy.get ('input.auth0-lock-input'). Last () cy.fixture ('loginUser'). As ('myUser' ) .type (this.myUser.email) Тест не запускается, и я получаю сообщение «TypeError: невозможно прочитать свойство 'email' of undefined»
Вы используете «Толстые стрелы»? Псевдонимы требуют стандартных функций. (Я сам на днях столкнулся с этим) См .: github.com/cypress-io/cypress/issues/1641
Мне ответил кто-то в чате gitter:
describe('My Login Test', function (){
it('Visit Risk App Landing Page', function (){
cy.visit('https://bvt-riskassessment.lmkcloud.net')
cy.get('button').click()
cy.get('a.auth0-lock-alternative-link').contains('Not your account?').click()
cy.fixture('loginUser').as('myUserFixture');
cy.get('@myUserFixture').then(user => {
cy.get('input.auth0-lock-input').first().type(user.email);
cy.get('input.auth0-lock-input').last().type(user.password);
cy.get('button').click()
cy.url().should('eq','https://bvt-riskassessment.lmkcloud.net/workflow')
Теперь я могу войти в систему, используя это, не имея имени пользователя или пароля в каждом тестовом сценарии.
Какая у вас ошибка?