Spec-Zone.ru › Cypress

Отправить

Отправить форму.

Тема должна быть <form>.

Синтаксис

.submit()
.submit(options)

Использование

Правильное использование

cy.get('form').submit() // Submit a form

Неправильное использование

cy.submit() // Errors, cannot be chained off 'cy'
cy.get('input').submit() // Errors, 'input' does not yield a form

Аргументы

options (Объект)

Передайте объект options, чтобы изменить поведение по умолчанию команды .submit().

Параметр Значение по умолчанию Описание
log true Отображает команду в журнале команд
timeout defaultCommandTimeout Время ожидания .submit() для разрешения перед выходом за пределы времени ожидания

Возвращаемое значение

  • .submit() возвращает тот же объект, что и предыдущая команда.

Пример

Без аргументов

Команда Отправить может быть вызвана только для одной формы

<form id="contact">
  <input type="text" name="message" />
  <button type="submit">Send</button>
</form>
cy.get('#contact').submit()

Примечания

Отправить — это не команда действия

.submit() не реализована как другая команда действия и не следует тем же правилам ожидания возможности выполнения действия.

.submit() — это полезная команда, используемая в качестве сокращения. Обычно для отправки формы нужно выполнить другое "действие". Это может быть нажатие кнопки "Отправить", или нажатие <button> на клавиатуре.

Иногда использование .submit() напрямую более лаконично и отражает то, что вы пытаетесь проверить.

Если вам нужны другие гарантии ожидания, пока элемент станет выполнимым, используйте другую команду, например .click() или .type().

Ошибка отправки, если есть ошибки валидации формы

Если отправляемая форма содержит элементы ввода с валидацией на стороне клиента, а валидация не пройдена, .submit() завершится неудачно и отобразит ошибки валидации.

Правила

Требования

  • .submit() требует, чтобы за ней следовала команда, которая возвращает DOM-элемент(ы).
  • .submit() требует, чтобы элемент был form .

Утверждения

  • .submit() автоматически подождёт, пока пройдут все присоединенные утверждения.

Таймауты

  • .submit() может выйти за пределы времени ожидания, ожидая, пока пройдут присоединенные утверждения.

Журнал команд

Отправить форму

cy.intercept('POST', '/users', { fixture: 'user' }).as('userSuccess')
cy.get('form').submit()

Вышеперечисленные команды отобразятся в журнале команд как:

Command Log submit

При нажатии на submit в журнале команд консоль выведет следующее:

Console Log submit

История

Версия Изменения
< 0.3.3 Добавлена команда .submit()

См. также

  • .click()
  • .type()

© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/commands/submit

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API