Menu

This is documentation for the next version of K6. For the latest stable release, go to the latest version.

Open source

click(selector[, options])

Warning

Use locator-based locator.click([options]) instead.

This method clicks on an element matching a selector.

ParameterTypeDefaultDescription
selectorstring''A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used.
optionsobjectnull
options.buttonstringleftThe mouse button (left, middle or right) to use during the action.
options.clickCountnumber1The number of times the action is performed.
options.delaynumber0Milliseconds to wait between mousedown and mouseup.
options.forcebooleanfalseSetting this to true will bypass the actionability checks (visible, stable, enabled).
options.modifiersstring[]nullAlt, Control, Meta or Shift modifiers keys pressed during the action. If not specified, currently pressed modifiers are used.
options.noWaitAfterbooleanfalseIf set to true and a navigation occurs from performing this action, it will not wait for it to complete.
options.positionobjectnullA 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.xnumber0The x coordinate.
options.position.ynumber0The y coordinate.
options.strictbooleanfalseWhen true, the call requires selector to resolve to a single element. If given selector resolves to more than one element, the call throws an exception.
options.timeoutnumber30000Maximum time in milliseconds. Pass 0 to disable the timeout. Default is overridden by the setDefaultTimeout option on BrowserContext or Page.
options.trialbooleanfalseSetting this to true will perform the actionability checks without performing the action. Useful to wait until the element is ready for the action without performing it.

Returns

TypeDescription
Promise<void>A Promise that fulfills when the click action is finished.

Example

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');
  await page.click('#counter-button');
}

When a click action results in a page navigation, remember to work with page.waitForNavigation() to properly handle the asynchronous operation.

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/');

  await Promise.all([page.waitForNavigation(), page.click('a[href="/my_messages.php"]')]);
}