You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Testing-Library中用JS模拟鼠标左键长按操作?

实现长按元素的测试方案

使用 @testing-library/user-event(推荐,适配现有代码)

你可以通过userEvent的pointerDown、wait、pointerUp方法组合,精准模拟长按流程:

const user = userEvent.setup();
const elementX = await screen.findByText('目标元素文本'); // 根据实际场景替换定位逻辑

// 1. 按下鼠标左键不松开
await user.pointerDown(elementX);
// 2. 等待1秒
await user.wait(1000);
// 3. 松开鼠标左键
await user.pointerUp(elementX);

如果需要明确指定鼠标按键(默认左键),可以给pointerDown传配置:

await user.pointerDown(elementX, { button: 0 }); // button:0 对应鼠标左键

原生Testing API实现(不依赖userEvent)

若不想使用userEvent,也可以用fireEvent配合waitFor完成:

import { fireEvent, waitFor, screen } from '@testing-library/react'; // 按需导入对应框架的库

const elementX = await screen.findByText('目标元素文本');

fireEvent.mouseDown(elementX);
await waitFor(() => {}, { timeout: 1000 });
fireEvent.mouseUp(elementX);

内容的提问来源于stack exchange,提问作者Alessandro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:46:08