This is documentation for the next version of K6. For the latest stable release, go to the latest version.
click([options])
Mouse click on the chosen element.
Parameter | Type | Default | Description |
---|---|---|---|
options | object | null | |
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 ). |
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
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()]);
}