click([options])
警告
请改为使用
locator.click([选项])
。
在选定的元素上进行鼠标点击。
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
options | 对象 | null | 可选参数。 |
options.button | 字符串 | left | 操作过程中使用的鼠标按钮(left , middle 或 right )。 |
options.clickCount | 数字 | 1 | 执行操作的次数。 |
options.delay | 数字 | 0 | 在 mousedown 和 mouseup 之间等待的毫秒数。 |
options.force | 布尔值 | false | 将其设置为 true 将绕过可操作性检查(visible , stable , enabled )。 |
options.modifiers | 字符串数组 | null | 操作过程中按下的 Alt 、Control 、Meta 或 Shift 修改键。如果未指定,则使用当前按下的修改键。 |
options.noWaitAfter | 布尔值 | false | 如果设置为 true 且执行此操作导致页面导航,则不会等待其完成。 |
options.position | 对象 | null | 相对于元素左上角的点。如果未提供,则使用元素的可见点。 |
options.position.x | 数字 | 0 | X 坐标。 |
options.position.y | 数字 | 0 | Y 坐标。 |
options.timeout | 数字 | 30000 | 最大毫秒数。传入 0 禁用超时。默认值会被 BrowserContext 或 Page 上的 setDefaultTimeout 选项覆盖。 |
options.trial | 布尔值 | false | 将其设置为 true 将执行可操作性检查而不实际执行操作。 |
返回值
类型 | 描述 |
---|---|
Promise<void> | 一个在点击操作完成后实现的 Promise。 |
示例
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();
}
当点击操作导致页面导航时,请记住使用 Promise.all()
和 page.waitForNavigation()
来正确处理异步操作。
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();
}