javascript - 使用测试库在JS中模拟长按鼠标左键

标签 javascript integration-testing mouse testing-library

我正在编写一个集成测试,我需要单击一个 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的userEventpointer

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/

相关文章:

javascript - 关于 .Sortable() 中的句柄

javascript - 在 React Native 中对对象数组进行动画处理

javascript - 每次我通过按钮调用ajax时如何重用jsonp url中的jsonp响应变量?

.net - 在每次构建时在构建机器中执行集成测试或只是单元测试是正常的吗?

c - 如何在 GtkOptionMenu/GtkComboBox 中禁用鼠标滚轮滚动

javascript - 升级到 React Native 0.55.4 后,isMounted() 警告不断出现

java - Maven 中的集成测试未执行

.net - 使用 TestCategory 分解集成测试有好处吗?

Python/pynput : How to get relative mouse position on change?

testing - 你会如何测试鼠标?描述尽可能多的测试用例?