Нажатие Enter на ввод даты в Cypress - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть приложение с некоторыми полями ввода, которые я пытаюсь автоматизировать. Суть этих полей в том, что я должен иметь возможность дважды щелкнуть поле, ввести новое значение, а затем нажать клавишу Enter, чтобы отправить это значение, которое отправляет запрос PUT и также закрывает поле ввода. Это работает для любого типа ввода, кроме даты.

Пока я пробовал:

  • Использование cy.type('{enter}'). Это дает Typing into a date input with cy.type() requires a valid date in the format 'yyyy-MM-dd'. You passed: {enter}

  • Использование cy.trigger() для отправки события нажатия клавиши для клавиши ввода. Это работает, поскольку оно успешно закрывает поле ввода, но почему-то не отправляет запрос PUT.

  • Нажатие ввода на родительском элементе. То же, что и использование cy.trigger()

Как ни странно, если я сам вручную открою поле ввода, введу дату и нажму Enter, запрос будет отправлен очень хорошо. Мне кажется, что есть какая-то проблема с программным нажатием клавиши ВВОД для отправки поля без Cypress, интерпретирующего это как мою попытку фактически ввести недопустимый символ в поле даты. В документах конкретно указано, что в поле даты не допускаются специальные символы.

Не могу опубликовать код, так как это корпоративный код.

1 Ответ

0 голосов
/ 16 апреля 2019

Я пытался заставить это работать, но сейчас это просто невозможно.Что-то вроде этого должно работать:

it.only('test', function () {
    cy.visit('https://www.html5tutorial.info/html5-date.php')
    cy.get('input')
      .type('2009-12-12')
      .type('{enter}')
  })

Но это не так, я начал копаться в куче проблем и нашел этот: https://github.com/cypress-io/cypress/issues/3405.Речь идет о другом типе ввода, но я считаю, что это связано с вашей проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...