Как исправить неправильный запрос API в Cypress?

#javascript #api #cypress

#javascript #API #кипарис

Вопрос:

Я пытаюсь создать запрос API для входа в систему chess.com сайт, но, похоже, запрос не выполняется. Шаги по воспроизведению:

  1. Я отправляю запрос вручную и проверяю его в Google developer tools. Вот и результат:
 Request URL: https://www.chess.com/login_check
 
   Request Method: POST
  Form Data
  _username: user@test.com
  _password:1234567
  login: 
  _target_path: https://www.chess.com/
  _token: cQr-epETT8R1cTUDY-AFua1cHdE46sHqY3OyDXgDz_k
 
  1. Я создал запрос GET в Cypress для получения токена, а затем использовал этот токен вместе со своими учетными данными в своем запросе POST на сервер для входа в систему. Вот моя просьба:
 describe("Login via API", () => {
  it("Send request for the token", () => {
    cy.request("GET", basicLinks.loginUrl).then((response) => {
      const token = Cypress.$(response.body).find("#_token").attr("value");
      cy.request({
        method: "POST",
        url: "/login_check",
        form: true,
        body: {
          _username: "test@yahoo.com",
          _password: "12345",
          login: {
            _target_path: "https://www.chess.com/",
            _token: token,
          },
        },
      });
    });
  });
}); 

  1. Но похоже, что с запросом что-то не так, потому что, насколько я вижу, я получил начальную страницу входа в систему в качестве ответа сервера. Кто-нибудь может посоветовать, что я делаю неправильно и как я могу исправить свой запрос? Пожалуйста, найдите прилагаемый скриншот, содержащий упомянутые выше данные.
    введите описание изображения здесь

Комментарии:

1. Можете ли вы распечатать значение токена перед cy.request использованием cy.log(token) , чтобы проверить, правильно ли сохранено значение.

2. Да, значение токена используется правильно. Вы можете видеть это на скриншоте выше в теле запроса в конце строки.