Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank

Previous survey · No. 750 ·

Pricing
Open Source
Type
TOOL
Use case
Software Testing & Quality
Interfaces
Host Plugin
GitHub
839 stars
Latest release
v1.15.1
Date

About

Cypress plugin that fires real native system events — solves the long-standing Cypress limitation around hover, drag, and OS-level interactions.

What it does

It extends Cypress tests with browser-debugging-protocol input dispatch. Tests can drive trusted clicks, typing, keyboard shortcuts, pointer movement, wheel scrolling, touch, swipes, focus traversal, and CSS hover states through familiar chainable commands.

Why it's ranked here

This is a focused answer to cases where Cypress’s JavaScript-generated input behaves differently from browser input. Its broad mouse, keyboard, and touch coverage makes it useful, but Chromium dependence prevents it from serving as a complete cross-browser interaction layer.

What's good

The command surface closely follows Cypress conventions and includes TypeScript declarations. Interaction options cover element-relative coordinates, named positions, scrolling behavior, mouse buttons, pointer types, modifier keys, pressure, typing delays, swipe direction, and touch radius.

Tradeoffs

Real interactions work only in Chromium-based browsers, with Firefox explicitly unsupported. Continuous integration requires an installed real browser, and the documented Cypress browser container can have unreliable protocol connections. Keyboard presses and typing are global, so tests must establish focus first.

How to use it well

Use it in Cypress suites that must verify focus traversal, hover styling, clipboard-related flows, precise pointer behavior, touch gestures, or trusted input. Keep ordinary simulated commands where they suffice. It does not provide Firefox coverage, replace Cypress, or support another test runner.

Technical notes+

src/fireCdpCommand.ts sends commands through Cypress.automation("remote:debugger:protocol", ...) and wraps protocol failures with context. src/support.ts registers ten Cypress commands, using unknown casts because the implementations return promises while Cypress command types do not permit them. src/index.d.ts maps implementation signatures into Cypress.Chainable declarations. src/getCypressElementCoordinates.ts scrolls subjects, resolves positions, and accounts for nested iframe offsets and scaling. src/commands/realType.ts tokenizes text and brace-delimited keys against src/keyCodeDefinitions.ts, then dispatches sequential presses with configurable delays.

Observed

License
MIT
Primary language
TypeScript
Packaging
Published as the cypress-real-events npm package; installable with npm or Yarn
Interface
Cypress plugin exposing chainable mouse, keyboard, touch, swipe, and wheel commands
Browser support
Chromium-based browsers only; Firefox is unsupported
Cypress compatibility
Peer dependency accepts Cypress major versions 4 through 15
Type support
Ships Cypress chainable TypeScript declarations
Runtime mechanism
Dispatches input through Cypress automation over the Chrome DevTools Protocol

Read from README.md, package.json, src/utils.ts, src/index.d.ts, src/support.ts, src/getModifiers.ts, src/fireCdpCommand.ts, src/keyCodeDefinitions.ts, src/mouseButtonNumbers.ts, src/keyToModifierBitMap.ts, src/getCypressElementCoordinates.ts, src/commands/mouseUp.ts, src/commands/realType.ts, src/commands/mouseDown.ts, src/commands/mouseMove.ts.

What it can do

  • Fire real mouse hover events

    Target element selector → Native system hover event on element

  • Execute real drag and drop operations

    Source and target element selectors → Native system drag and drop interaction

  • Trigger real keyboard events

    Key combinations and target elements → Native system keyboard events

  • Generate real mouse clicks

    Element coordinates or selectors → Native system click events

  • Simulate real focus events

    Target element selector → Native system focus event on element

  • Execute real scroll interactions

    Scroll coordinates or target elements → Native system scroll events

Tags

cypresstestingeventse2eplugin

Tech Stack

Node.jsTypeScript

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.