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

click

Обзор

Используйте команду click, чтобы кликнуть по элементу.

warning

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

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

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

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

await browser.$(selector).click({ button, x, y, skipRelease });

Параметры команды

ИмяТипОписание
buttonString или NumberКнопка, с помощью которой нужно выполнить клик. Может принимать значения 0, 1, 2 или "left", "middle", "right" соответственно.
xNumberКоордината x, куда нужно кликнуть.
yNumberКоордината y, куда нужно кликнуть.
skipReleaseBooleanЕсли значение true, то после клика не нужно отправлять releaseActions.

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

Пример 1

example-1.html

<button id="myButton" onclick="document.getElementById('someText').innerHTML='I was clicked'">Click me</button>
<div id="someText">I was not clicked</div>

click-1.js

it("should demonstrate the click command", async ({ browser }) => {
const myButton = await browser.$("#myButton");
await myButton.click();

const myText = await browser.$("#someText");
const text = await myText.getText();

assert.equal(text, "I was clicked"); // true
});

example-1.js

it("should fetch menu links and visit each page", async ({ browser }) => {
const links = await browser.$$("#menu a");

for (let link of links) {
await link.click();
}
});

Пример 2

example-2.html

<button id="myButton">Click me</button>

example-2.js

it("should demonstrate a click using an offset", async ({ browser }) => {
const myButton = await browser.$("#myButton");

// кликаем на расстоянии 30 горизонтальных пикселей
// от местоположения кнопки (от центра элемента)
await myButton.click({ x: 30 });
});

Пример 3

example-3.html

<button id="myButton">Click me</button>

example-3.js

it("should demonstrate a right click passed as string", async ({ browser }) => {
const myButton = await browser.$("#myButton");

// открываем контекстное меню в месте расположения кнопки
await myButton.click({ button: "right" });
});

it("should demonstrate a right click passed as number while adding an offset", async ({
browser,
}) => {
const myButton = await browser.$("#myButton");

// открываем контекстное меню на расстоянии 30 горизонтальных и 40 вертикальных пикселей
// от местоположения кнопки (от центра элемента)
await myButton.click({ button: 2, x: 30, y: 40 });
});

it("should skip sending releaseAction command that cause unexpected alert closure", async ({
browser,
}) => {
const myButton = await browser.$("#myButton");

// пропускаем отправку releaseActions
await myButton.click({ button: 2, x: 30, y: 40, skipRelease: true });
});