菜单
开源

click([options])

注意

此方法存在已知问题。详情请参阅 #471#474

在选定元素上模拟鼠标点击。

参数类型默认值描述
optionsobjectnull
options.buttonstringleft操作期间使用的鼠标按钮(leftmiddleright)。
options.clickCountnumber1执行操作的次数。
options.delaynumber0mousedownmouseup 之间的等待毫秒数。
options.forcebooleanfalse设置为 true 将绕过可操作性检查(visiblestableenabled)。
options.modifiersstring[]null操作期间按下的 AltControlMetaShift 修饰键。如果未指定,则使用当前按下的修饰键。
options.noWaitAfterbooleanfalse如果设置为 true 并且此操作导致页面导航,则不会等待其完成。
options.positionobjectnull相对于元素左上角使用的点。如果未提供,则使用元素的一个可见点。
options.position.xnumber0x 坐标。
options.position.ynumber0y 坐标。
options.timeoutnumber30000最大时间,单位为毫秒。传递 0 可禁用超时。默认值会被 BrowserContextPage 上的 setDefaultTimeout 选项覆盖。
options.trialbooleanfalse设置为 true 将执行可操作性检查,但不执行实际操作。

返回值

类型描述
Promise<void>一个 Promise,当点击操作完成时fulfilled。

示例

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

当点击操作导致页面导航时,请记住使用 Promise.all()page.waitForNavigation() 来正确处理异步操作。

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 = page.locator('a[href="/my_messages.php"]');

  await Promise.all([page.waitForNavigation(), messagesLink.click()]);
}