Spec-Zone.ru › Cypress

Нажатие

Нажмите на элемент DOM.

Синтаксис

.click()
.click(options)
.click(position)
.click(position, options)
.click(x, y)
.click(x, y, options)

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

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

cy.get('.btn').click() // Click on button
cy.focused().click() // Click on el with focus
cy.contains('Welcome').click() // Click on first el containing 'Welcome'

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

cy.click('.btn') // Errors, cannot be chained off 'cy'
cy.window().click() // Errors, 'window' does not yield DOM element

Аргументы

position (Строка)

Позиция, где должно произойти нажатие. Позиция center является позицией по умолчанию. Допустимые позиции — topLeft, top, topRight, left, center, right, bottomLeft, bottom, и bottomRight.

cypress-command-positions-diagram

x (Число)

Расстояние в пикселях от левой границы элемента до места нажатия.

y (Число)

Расстояние в пикселях от верхней границы элемента до места нажатия.

options (Объект)

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

Опция Значение по умолчанию Описание
altKey false Активирует клавишу Alt (клавиша Option для Mac). Псевдонимы: optionKey.
animationDistanceThreshold animationDistanceThreshold Расстояние в пикселях, которое элемент должен преодолеть со временем, чтобы считаться анимируемым. см. сведения об анимации.
ctrlKey false Активирует клавишу Control. Псевдонимы: controlKey.
log true Отображает команду в журнале команд
force false Выполняет действие принудительно, отключает ожидание возможности выполнения действия
metaKey false Активирует клавишу Meta (клавиша Windows или Command для Mac). Псевдонимы: commandKey, cmdKey.
multiple false Последовательно нажимает на несколько элементов
scrollBehavior scrollBehavior Положение области просмотра, до которого должен прокрутиться элемент перед выполнением команды см. прокрутку
shiftKey false Активирует клавишу Shift.
timeout defaultCommandTimeout Время ожидания, пока .click() разрешится, прежде чем произойдёт ожидание
waitForAnimations waitForAnimations Ожидать, пока элементы завершат анимацию перед выполнением команды.

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

  • .click() возвращает тот же объект, который был передан в предыдущей команде.

Примеры

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

Нажатие ссылки в навигации

cy.get('.nav > a').click()

Позиция

Указание угла элемента для нажатия

Нажмите на верхний правый угол кнопки.

cy.get('img').click('topRight')

Координаты

Указание явных координат относительно верхнего левого угла

Нажатие ниже будет выполнено внутри элемента (15 пикселей от левого края и 40 пикселей от верхнего края).

cy.get('#top-banner').click(15, 40)

Параметры

Принудительное нажатие независимо от состояния выполнения действия

Принудительное нажатие отменяет проверки выполнимости, которые применяет Cypress, и автоматически выполнит события.

cy.get('.close').as('closeBtn')
cy.get('@closeBtn').click({ force: true })

Принудительное нажатие с аргументом позиции

cy.get('#collapse-sidebar').click('bottomLeft', { force: true })

Принудительное нажатие с относительными координатами

cy.get('#footer .next').click(5, 60, { force: true })

Нажатие на все элементы с идентификатором, начинающимся с 'btn'

По умолчанию Cypress выдаст ошибку, если вы пытаетесь нажать на несколько элементов. Передав { multiple: true }, Cypress итеративно применит нажатие к каждому элементу и также запишет в журнал команд несколько раз.

cy.get('[id^=btn]').click({ multiple: true })

Нажатие с комбинацией клавиш

Команда .click() также может быть вызвана с модификаторами клавиш, чтобы смоделировать удержание комбинации клавиш при нажатии, например, ALT + click.

Вы также можете использовать комбинации клавиш во время .type(). Это предоставляет варианты удерживания клавиш через несколько команд. Подробнее см. Комбинации клавиш.

Следующие клавиши могут быть объединены с .click() через options.

Опция Примечания
altKey Активирует клавишу Alt (клавиша Option для Mac). Псевдонимы: optionKey.
ctrlKey Активирует клавишу Control. Псевдонимы: controlKey.
metaKey Активирует клавишу Meta (клавиша Windows или Command для Mac). Псевдонимы: commandKey, cmdKey.
shiftKey Активирует клавишу Shift.

Нажатие со Shift

// execute a SHIFT + click on the first <li>
cy.get('li:first').click({
  shiftKey: true,
})

Примечания

Выполнимость

Элемент должен сначала достичь состояния выполнимости

.click() — это "команда действия", которая следует всем правилам выполнимости.

Фокус

Фокус передается первому фокусируемому элементу

Например, нажатие на <span> внутри <button> передает фокус на кнопку, так как это произойдёт в реальной пользовательской ситуации.

Однако Cypress также обрабатывает ситуации, когда дочерний элемент нажимается внутри родительского фокусируемого элемента, но фактически не находится визуально внутри родительского элемента (согласно CSS Object Model). В этих случаях, если нет фокусируемого родителя, фокус передаётся окну (что соответствует поведению реального браузера).

Отмена

Отмена события mousedown не вызовет фокус

Если действие по умолчанию для события mousedown отменено (e.preventDefault()) то элемент не получит фокус, согласно спецификации.

Правила

Требования

  • .click() требует, чтобы его использовали с командой, возвращающей элемент(ы) DOM.

Утверждения

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

Таймауты

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

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

Нажмите на кнопку

cy.get('.action-btn').click()

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

Command log for click

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

console.log for click

История

Версия Изменения
6.1.0 Добавлена опция scrollBehavior
3.5.0 Добавлен отправка mouseover, mousemove, mouseout, pointerdown, pointerup, и pointermove при .click()

См. также

  • .check()
  • .click() примеры в приложении kitchensink
  • .dblclick()
  • .rightclick()
  • .select()
  • .submit()
  • .type()
  • Блог «Когда тест может нажать?»

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

Spec-Zone.ru

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