Menu
Open source

click([options])

Warning

Use locator.click([options]) instead.

Mouse click on the chosen element.

ParameterTypeDefaultDescription
optionsobjectnullOptional parameters.
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.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.

Returns

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

Examples

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
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();
}