WebdriverIO предоставляет мощные инструменты для эмуляции действий пользователя, включая одиночные и двойные клики на элементы веб-страницы. Правильное использование этих методов позволяет автоматизировать тестирование интерактивных интерфейсов с высокой точностью.
click()Метод click() выполняет одиночное нажатие на элемент. Он
доступен для всех объектов, полученных через селекторы WebdriverIO.
Синтаксис:
await $(selector).click();
Особенности:
{ button: 'right' } для имитации правого клика:await $(selector).click({ button: 'right' });
const button = await $('#submit');
await button.waitForDisplayed({ timeout: 5000 });
await button.click();
doubleClick()Для эмуляции двойного клика WebdriverIO предоставляет метод
doubleClick(). Он особенно полезен для редактирования
текста, открытия элементов или запуска специальных событий на
интерфейсе.
Пример использования:
const item = await $('.list-item');
await item.doubleClick();
Особенности:
button для
указания кнопки мыши.click() дважды,
doubleClick() гарантирует правильное срабатывание событий
dblclick.Иногда требуется кликнуть не по центру элемента, а в определённой точке. WebdriverIO позволяет указать координаты относительно верхнего левого угла элемента:
await element.click({ x: 10, y: 20 });
Особенности:
Для более сложных сценариев, таких как перетаскивание с кликом или
двойной клик с удержанием, WebdriverIO поддерживает цепочки действий
через action API:
await browser.performActions([{
type: 'pointer',
id: 'mouse',
parameters: { pointerType: 'mouse' },
actions: [
{ type: 'pointerMove', origin: element, x: 0, y: 0 },
{ type: 'pointerDown', button: 0 },
{ type: 'pointerUp', button: 0 },
{ type: 'pause', duration: 50 },
{ type: 'pointerDown', button: 0 },
{ type: 'pointerUp', button: 0 }
]
}]);
Особенности:
waitForExist() и waitForDisplayed().pause()) или ожидания появления элемента.doubleClick() вместо двух
последовательных click() для правильного срабатывания
событий.scrollIntoView() перед кликом:await element.scrollIntoView();
await element.click();
performActions() для точного
воспроизведения пользовательского поведения.element not interactable.getSize().Эффективное использование методов клика и двойного клика в WebdriverIO позволяет создавать надежные, воспроизводимые тесты для сложных пользовательских интерфейсов, обеспечивая корректное взаимодействие с элементами страницы в любых условиях.