Нажатие
Нажмите на элемент 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.
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()
Вышеупомянутые команды отобразятся в журнале команд как:
При нажатии на click в журнале команд консоль выведет следующее:
История
| Версия | Изменения |
|---|---|
| 6.1.0 | Добавлена опция scrollBehavior
|
| 3.5.0 | Добавлен отправка mouseover, mousemove, mouseout, pointerdown, pointerup, и pointermove при .click()
|
См. также
© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/commands/click