我正在编写一个集成测试,我需要单击一个 html 对象超过 0.5 秒。
在同一个测试中,我已经能够使用 userEvent
来处理各种按键的操作,例如:
const user = userEvent.setup();
await user.keyboard("[ShiftLeft>]"); // Press Shift (without releasing it)
const pointer = await screen.findByText(objectName);
await user.click(pointer);
await user.keyboard("[/ShiftLeft]"); // Release Shift
我想知道是否有一种方法可以执行类似的操作(有或没有 userEvent)来对页面中的对象执行长单击。 像这样的东西:
- 鼠标左键单击 X 而不释放按钮
- 等待 1 秒
- 释放鼠标左键
谢谢!
最佳答案
我找到了解决我问题的方法,也许对其他人有用:)
它使用来自testing-library/user-event的userEvent
pointer
。
export async function longPress(target: string) {
const myTarget = await screen.findByText(target);
const user = userEvent.setup();
await user.pointer({
keys: "[MouseLeft>]",
target: myTarget ,
});
await new Promise((resolve) => {
setTimeout(resolve, 1000);
});
await user.pointer({ keys: "[/MouseLeft]", target: myTarget });
}
关于javascript - 使用测试库在JS中模拟长按鼠标左键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74615594/