Cypress сохранить значение куки - PullRequest
0 голосов
/ 14 марта 2019

Я хочу сохранить значение cookie с помощью Cypress, но, к сожалению, я всегда получаю неопределенное значение в консоли журнала, используя этот код

let cookieValue;
cy.getCookie('SOME_COOKIE')
    .should('have.property', 'value')
    .then((cookie) => {
        cookieValue = cookie.value;
    })
cy.log(cookieValue);

Когда я пытаюсь это

let cookieValue;
cy.getCookie('SOME_COOKIE')
    .should('have.property', 'value', 'Dummy value')
    .then((cookie) => {
        cookieValue = cookie.value;
    })
cy.log(cookieValue);

Я вижу нужное значение в сообщении об ошибке.

1 Ответ

2 голосов
/ 18 марта 2019

Cypress работает асинхронно, и вы не можете использовать значение cookie, как вы.

С документы

Хотите перейти в поток команди получить руки на предмет непосредственно?Нет проблем, просто добавьте .then () в вашу цепочку команд.Когда предыдущая команда разрешится, она вызовет вашу функцию обратного вызова с указанным объектом в качестве первого аргумента.

Вы должны продолжить тестовый код внутри обратного вызова then и не полагаться на внешнююlet cookieValue назначение.

Попробуйте это

cy.getCookie('SOME_COOKIE')
    .should('have.property', 'value')
    .then((cookie) => {
        cookieValue = cookie.value;
        // YOU SHOULD CONSUME `cookieValue` here
        // .. go ahead inside this `then` callback
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...