如何在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
相关产品推荐
相关产品推荐

