click([options]) Caution
This method has known issues . For details, refer to #471 and #474 .
Mouse click on the chosen element.
Expand table
Parameter Type Default Description options object nulloptions.button string leftThe mouse button (left, middle or right) to use during the action. options.clickCount number 1The number of times the action is performed. options.delay number 0Milliseconds to wait between mousedown and mouseup. options.force boolean falseSetting this to true will bypass the actionability checks (visible, stable, enabled). options.modifiers string[] nullAlt, Control, Meta or Shift modifiers keys pressed during the action. If not specified, currently pressed modifiers are used.options.noWaitAfter boolean falseIf set to true and a navigation occurs from performing this action, it will not wait for it to complete. options.position object nullA point to use relative to the top left corner of the element. If not supplied, a visible point of the element is used. options.position.x number 0The x coordinate. options.position.y number 0The y coordinate. options.timeout number 30000Maximum time in milliseconds. Pass 0 to disable the timeout. Default is overridden by the setDefaultTimeout option on
BrowserContext or
Page . options.trial boolean falseSetting this to true will perform the actionability checks without performing the action.
Returns Expand table
Type Description Promise<void>A Promise that fulfills when the click action is finished.
Examples import { browser } from 'k6/browser';
export const options = {
scenarios: {
browser: {
executor: 'shared-iterations',
options: {
browser: {
type: 'chromium',
},
},
},
},
};
export default async function () {
const page = await browser.newPage();
await page.goto('https://test.k6.io/browser.php');
const button = page.locator('#counter-button');
await button.click();
}When a click action results in a page navigation, remember to work with Promise.all() and page.waitForNavigation() to properly handle the asynchronous operation.
import { browser } from 'k6/browser';
export const options = {
scenarios: {
browser: {
executor: 'shared-iterations',
options: {
browser: {
type: 'chromium',
},
},
},
},
};
export default async function () {
const page = await browser.newPage();
await page.goto('https://test.k6.io/');
const messagesLink = page.locator('a[href="/my_messages.php"]');
await Promise.all([page.waitForNavigation(), messagesLink.click()]);
}