Menu
Choose a product
Viewing: v1.7.x (latest)
Find another version
Scroll for more
Open source
click([options])
Warning
Use
locator.click([options])instead.
Mouse click on the chosen element.
| Parameter | Type | Default | Description |
|---|---|---|---|
| options | object | null | Optional parameters. |
| options.button | string | left | The mouse button (left, middle or right) to use during the action. |
| options.clickCount | number | 1 | The number of times the action is performed. |
| options.delay | number | 0 | Milliseconds to wait between mousedown and mouseup. |
| options.force | boolean | false | Setting this to true will bypass the actionability checks (visible, stable, enabled). Avoid using force: true in click actions, as it may mask underlying test design or app issues. It bypasses normal user interaction checks, and elements may not be clickable due to
cookie banner interference. |
| options.modifiers | string[] | null | Alt, Control, Meta or Shift modifiers keys pressed during the action. If not specified, currently pressed modifiers are used. |
| options.noWaitAfter | boolean | false | If set to true and a navigation occurs from performing this action, it will not wait for it to complete. |
| options.position | object | null | A 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 | 0 | The x coordinate. |
| options.position.y | number | 0 | The y coordinate. |
| options.timeout | number | 30000 | Maximum time in milliseconds. Pass 0 to disable the timeout. Default is overridden by the setDefaultTimeout option on
BrowserContext or
Page. |
| options.trial | boolean | false | Setting this to true will perform the actionability checks without performing the action. |
Returns
| Type | Description |
|---|---|
Promise<void> | A Promise that fulfills when the click action is finished. |
Examples
JavaScript
JavaScript
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 = await page.$('#counter-button');
await button.click();
await page.close();
}When a click action results in a page navigation, remember to work with Promise.all() and page.waitForNavigation() to properly handle the asynchronous operation.
JavaScript
JavaScript
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 = await page.$('a[href="/my_messages.php"]');
await Promise.all([
page.waitForNavigation(),
messagesLink.click()
]);
await page.close();
}Was this page helpful?
Related resources from Grafana Labs
Additional helpful documentation, links, and articles:
Video

Performance testing and observability in Grafana Cloud
Optimize user experiences with Grafana Cloud. Learn real-time insights, performance testing with k6, and continuous validation with Synthetic Monitoring.
Events

User-centered observability: load testing, real user monitoring, and synthetics
Learn how to use load testing, synthetic monitoring, and real user monitoring (RUM) to understand end users' experience of your apps. Watch on demand.