菜单
文档breadcrumb arrow Grafana k6breadcrumb arrow JavaScript APIbreadcrumb arrow k6/browserbreadcrumb arrow Pagebreadcrumb arrow click(selector[, options])
开源

click(selector[, options])

警告

请改用基于 locator 的 locator.click([options])

此方法点击与 selector 匹配的元素。

参数类型默认值描述
selectorstring''用于搜索元素的 selector。如果存在多个满足 selector 的元素,将使用第一个。
optionsobjectnull
options.buttonstringleft操作期间使用的鼠标按钮(leftmiddleright)。
options.clickCountnumber1执行操作的次数。
options.delaynumber0mousedownmouseup 之间等待的毫秒数。
options.forcebooleanfalse将其设置为 true 将绕过可操作性检查(可见稳定启用)。
options.modifiersstring[]null操作期间按下的 AltControlMetaShift 修饰键。如果未指定,则使用当前按下的修饰键。
options.noWaitAfterbooleanfalse如果设置为 true 并且执行此操作导致导航发生,则不会等待其完成。
options.positionobjectnull相对于元素左上角的点。如果未提供,则使用元素的可见点。
options.position.xnumber0x 坐标。
options.position.ynumber0y 坐标。
options.strictbooleanfalse当为 true 时,调用要求 selector 解析为单个元素。如果给定的 selector 解析为多个元素,则调用会抛出异常。
options.timeoutnumber30000最大毫秒数。传递 0 以禁用超时。默认值会被 BrowserContextPage 上的 setDefaultTimeout 选项覆盖。
options.trialbooleanfalse将其设置为 true 将执行可操作性检查,但不执行实际操作。这对于等待元素准备好进行操作但又不实际执行操作时非常有用。

返回值

类型描述
Promise<void>一个在点击操作完成后 fulfill 的 Promise。

示例

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

当点击操作导致页面导航时,请记住使用 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/');

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