Как я могу имитировать сессию реальной покупки при использовании кипариса? - PullRequest
0 голосов
/ 07 марта 2019

пожалуйста, помогите!Мне действительно нужно поторопиться с моим холостяком, и я не знаком с javascript или кипарисом, но я должен использовать эту программу для моего холостяка: '(

Так вот моя проблема: я хочу смоделировать покупку /Инвестиционный процесс на странице dev.capitalpioneers.de И я запустил Cypress с помощью команды cy.visit, cy.get, cy.contains (). click () aso

Через Cypress: я вошел в систему, этоХорошо, я могу загрузить все необходимые документы, но на выбранном мной продукте я хочу запустить инвестиционный процесс, нажав кнопку «инвестировать сейчас», появляется сообщение об ошибке, что токен CSFR недействителен.

Поэтому, когда я напрямую взаимодействую с этим сайтом вручную через браузер Cypress, он попадает на страницу регистрации.

Я прочитал в документации, что я должен использовать это:

cy.request('POST', 'https://sso.corp.com/auth', { username: 'foo', password: 'bar' })
  .then((response) => {
    // pull out the location redirect
    const loc = response.headers['Location']

    // parse out the token from the url (assuming its in there)
    const token = parseOutMyToken(loc)

    // do something with the token that your web application expects
    // likely the same behavior as what your SSO does under the hood
    // assuming it handles query string tokens like this
    cy.visit('http://localhost:8080?token=' + token)

    // if you don't need to work with the token you can sometimes
    // just visit the location header directly
    cy.visit(loc)
  })

Iне удается разобрать токен до или во время входа в систему. Токен появляется в теле в ситуациях.

Сначала, когда я попадаю на сайт продукта, я могу получить этот токениз тела

'#product_filter__token[name=product_filter[_token]]'

по этому URL: https://dev.capitalpioneers.de/produkte/

И второе, когда я выбрал продукт и хочу инвестировать

'#user_profile__token[name=user_profile[_token]]'

по этому URL: https://dev.capitalpioneers.de/investor/investment/N01-134225/investieren/ (забавная дополнительная информация: это число N01-134225 меняется каждый раз, когда я начинаю настоящий новый инвестиционный процесс)

Я нашел на этой странице github https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/logging-in__csrf-tokens/cypress/integration/logging-in-csrf-tokens-spec.js

как разобратьтокен, но я хочу сохранить его и имитировать реальный сеанс, чтобы я не получил сообщение об ошибке 401, что мой запрос не авторизован, и решение github не сработало.

Мне действительно нужнопомогите и надейтесь, что у каждого есть правильное решение.Спасибо!Кристи

PS: мне нужно объединить, может быть, команду cy.getCookies () с этой функцией cy.request ()?И как мне это структурировать?

1 Ответ

0 голосов
/ 07 марта 2019

PS: мне нужно объединить команду cy.getCookies () с этой функцией cy.request ()? И как мне это структурировать?

Кипарис работает не так. Cypress начать с полностью чистой среды, удалив весь кеш, куки и другое хранилище. Так что каждый забег начнется с одной и той же начальной точки

...