Перейти к основному содержимому

click

Клик по элементу.

Эта команда выполняет WebDriver команду click для выбранного элемента, которая обычно прокручивает к выбранному элементу, а затем кликает по нему, когда не передаются опции. Когда передается объект options, вместо клика webdriver используется класс действий, что дает дополнительные возможности, такие как передача типа кнопки, координат и т.д. По умолчанию, при использовании опций после выполнения действия клика отправляется команда отпускания (release), передайте option.skipRelease=true, чтобы пропустить это действие.

информация

Если у вас есть элементы с фиксированным положением (например, фиксированный заголовок или футер), которые закрывают выбранный элемент после его прокрутки в области видимости, клик будет выполнен по указанным координатам, но будет получен вашим фиксированным (перекрывающим) элементом. В этих случаях возникает следующая ошибка:

Element is not clickable at point (x, x). Other element would receive the click: ..."

Для решения этой проблемы попробуйте найти перекрывающий элемент и удалить его с помощью команды execute, чтобы он не мешал клику. Вы также можете попробовать самостоятельно прокрутить к элементу, используя scroll с подходящим для вашего сценария смещением.

информация

Команда клика также может использоваться для имитации долгого нажатия на мобильном устройстве. Это делается путем установки duration. Смотрите пример ниже для получения дополнительной информации.

Использование
$(selector).click({ button, x, y, skipRelease, duration })
Параметры
ИмяТипДетали
options
опционально
ClickOptionsОпции клика (опционально)
options.button
опционально
string, numberМожет быть одним из [0, "left", 1, "middle", 2, "right"]
ТОЛЬКО ДЛЯ ВЕБА (Десктоп/Мобильный)
options.x
опционально
numberКлик на X горизонтальных пикселей от местоположения элемента (от центральной точки элемента)
WEB и Native (Десктоп/Мобильный)
options.y
опционально
numberКлик на Y вертикальных пикселей от местоположения элемента (от центральной точки элемента)
WEB и Native поддержка (Десктоп/Мобильный)
options.skipRelease
опционально
booleanБулево значение (опционально)
ТОЛЬКО ДЛЯ ВЕБА (Десктоп/Мобильный)
options.duration
опционально
numberПродолжительность клика, также известная как "LongPress"
ТОЛЬКО ДЛЯ МОБИЛЬНЫХ НАТИВНЫХ ПРИЛОЖЕНИЙ (Мобильный)
Примеры
example.html
<button id="myButton" onclick="document.getElementById('someText').innerHTML='I was clicked'">Click me</button>
<div id="someText">I was not clicked</div>
click.js
it('should demonstrate the click command', async () => {
const myButton = await $('#myButton')
await myButton.click()
const myText = await $('#someText')
const text = await myText.getText()
assert(text === 'I was clicked') // true
})
example.js
it('should fetch menu links and visit each page', async () => {
const links = await $$('#menu a')
await links.forEach(async (link) => {
await link.click()
})
})

example.html
<button id="myButton">Click me</button>
example.js
it('should demonstrate a click using an offset', async () => {
const myButton = await $('#myButton')
await myButton.click({ x: 30 }) // clicks 30 horizontal pixels away from location of the button (from center point of element)
})

example.html
<button id="myButton">Click me</button>
example.js
it('should demonstrate a right click passed as string', async () => {
const myButton = await $('#myButton')
await myButton.click({ button: 'right' }) // opens the contextmenu at the location of the button
})
it('should demonstrate a right click passed as number while adding an offset', async () => {
const myButton = await $('#myButton')
await myButton.click({ button: 2, x: 30, y: 40 }) // opens the contextmenu 30 horizontal and 40 vertical pixels away from location of the button (from the center of element)
})
it('should skip sending releaseAction command that cause unexpected alert closure', async () => {
const myButton = await $('#myButton')
await myButton.click({ button: 2, x: 30, y: 40, skipRelease:true }) // skips sending releaseActions
})

longpress.example.js
it('should be able to open the contacts menu on iOS by executing a longPress', async () => {
const contacts = await $('~Contacts')
// opens the Contacts menu on iOS where you can quickly create
// a new contact, edit your home screen, or remove the app
await contacts.click({ duration: 2000 })
})

Welcome! How can I help?

WebdriverIO AI Copilot