Native UI testing / controlling with node

Overview

nut.js (Native UI Toolkit)

GitHub Actions
Master Create tagged release
Develop Create snapshot release

Supported node versions SonarCloud badge SonarCloud Coverage

Downloads per month

Native UI testing / automation with node.js


Built with opencv4nodejs

About

logo

nut.js is a cross-platform native UI automation / testing tool.

It allows for native UI interactions via keyboard and / or mouse, but additionally gives you the possibility to navigate the screen based on image matching.

Examples

nut-tree/trailmix contains a set of ready to use examples which demo the usage ot nut.js.

Discussion

In nut-tree/rfc documents regarding larger design / implementation changes in nut.js are up for discussion.

Community

Feel free to join our Discord community

Modules

This list gives an overview on currently implemented and planned functionality. It's work in progress and will undergo constant modification.

Clipboard

  • Copy text to clipboard
  • Paste text from clipboard

Keyboard

  • Support for standard US keyboard layout
  • Support for German special characters

Mouse

  • Support for mouse movement
  • Support for mouse scroll
  • Configurable movement speed
  • Mouse drag

Window

  • List all windows
  • Retrieve active window
  • Retrieve window title
  • Retrieve window size and position

Screen

  • findOnScreen
  • waitFor
  • Hooks to trigger actions based on images
  • Highlighting screen regions

Integration

  • Jest
  • Electron

Sample

The following snippet shows a valid nut.js example (on macOS)

"use strict";

const { keyboard, Key, mouse, left, right, up, down, screen } = require("@nut-tree/nut-js");

const square = async () => {
  await mouse.move(right(500));
  await mouse.move(down(500));
  await mouse.move(left(500));
  await mouse.move(up(500));
};

const openSpotlight = async () => {
  await keyboard.pressKey(Key.LeftSuper);
  await keyboard.pressKey(Key.Space);
  await keyboard.releaseKey(Key.Space);
  await keyboard.releaseKey(Key.LeftSuper);
};

(async () => {
    await square();
    await openSpotlight();
    await keyboard.type("calculator");
    await keyboard.type(Key.Return);
})();

Installation

nut.js comes with a pre-built version of OpenCV for your respective target platform. In order to use these pre-compiled bindings, certain runtime conditions have to be met.

Prerequisites

This section lists runtime requirements for nut.js on the respective target platform. nut.js is built and tested against node 10 and later as well as Electron 4 and later, so in order to use nut.js please make sure to use one of these versions.

Windows

In order to install nut.js on Windows, please make sure to have the Microsoft Visual C++ Redistributable installed.

macOS

On macOS, Xcode command line tools are required. You can install them by running

xcode-select --install

Attention:

In case you're experiencing problems like your mouse not moving or your keyboard not typing, please make sure to give the process you're executing your tests with accessibility permissions.

If an application wants to use accessibility features, a permission pop-up should be shown. If not, you could try to manually add the application you're running the script from.

Settings -> Security & Privacy -> Privacy -> Accessibility -> Add...

Linux

Depending on your distribution, Linux setups may differ.

In general, nut.js requires

  • libXtst

Installation on *buntu distributions:

sudo apt-get install libxtst-dev

Setups on other distributions might differ.

Install nut.js

Running

npm i @nut-tree/nut-js

or

yarn add @nut-tree/nut-js

will install nut.js and its required dependencies.

Snapshot releases

nut.js also provides snapshot releases which allows to test upcoming features.

Running

npm i @nut-tree/nut-js@next

or

yarn add @nut-tree/nut-js@next

will install the most recent development release of nut.js.

Attention: While snapshot releases are great to work with upcoming features before a new stable release, it is still a snapshot release. Please bear in mind that things might change and / or break on snapshot releases, so it is not recommended using them in production.

Usage with Electron

nut.js in combination with Electron requires bindings built for use with Electron. nut.js does provide such bindings and e.g. electron-rebuild makes installation a breeze.

Besides installing nut.js via

npm i @nut-tree/nut-js

or

yarn add @nut-tree/nut-js

we also install electron-rebuild as a devDependency:

npm i -D electron-rebuild

or

yarn add -D electron-rebuild

Next, we add a rebuild script to our package.json:

{
    ...
    "scripts": {
        ...
        "start": "electron app.js",
        "rebuild": "electron-rebuild"
    },
    ...,
}

Now all we have to do is run npm run rebuild and electron-rebuild will fetch the appropriate bindings for our Electron version. Currently nut.js provides bindings for all ABI version to work with Electron v4.x up to 8.x

Manual build

As a fallback, nut.js is able to build all required dependencies by itself. To do so, some setup is required on the respective target platform.

Windows

In order to install nut.js on Windows, Windows Build Tools and Python 2 are required. You can either set them up manually, or install them via npm:

npm install --global windows-build-tools

or

yarn global add windows-build-tools

macOS

On macOS, Xcode command line tools are required. You can install them by running

xcode-select --install

Linux

Depending on your distribution, Linux setups may differ.

In general, nut.js requires

  • Python 2
  • g++
  • make
  • libXtst
  • libPng

Installation on *buntu distributions:

sudo apt-get install build-essential python libxtst-dev libpng++-dev

Setups on other distributions might differ.

For reference, please see:

Comments
  • Support Apple Silicon!

    Support Apple Silicon!

    Short overview

    The new Mac M1 Pro is sweet! But this library doesn't work anymore 😭

    Use case

    Detailed feature description

    npm ERR! code EBADPLATFORM
    npm ERR! notsup Unsupported platform for @nut-tree/[email protected]: wanted {"os":"linux,darwin,win32","arch":"x64,ia32"} (current: {"os":"darwin","arch":"arm64"})
    npm ERR! notsup Valid OS:    linux,darwin,win32
    npm ERR! notsup Valid Arch:  x64,ia32
    npm ERR! notsup Actual OS:   darwin
    npm ERR! notsup Actual Arch: arm64
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /Users/chet/.npm/_logs/2021-11-03T15_56_11_865Z-debug.log
    

    Additional content

    Please provide any (mandatory) additional data for your desired feature

    enhancement 
    opened by ccorcos 18
  • Install of template-matcher fails on windows 10

    Install of template-matcher fails on windows 10

    Version 2.0.0

    Short overview It fails Issue occurs on

    • [X] Dev/Host system

    Detailed error description

    C:\Users\nuc\Documents\GitHub\test-project>npm i @nut-tree/nut-js
    npm WARN deprecated [email protected]: this library is no longer supported
    npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
    npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
    npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
    npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
    npm ERR! code 1
    npm ERR! path C:\Users\nuc\Documents\GitHub\test-project\node_modules\opencv4nodejs-prebuilt
    npm ERR! command failed
    npm ERR! command C:\Windows\system32\cmd.exe /d /s /c prebuild-install || (node ./install/dependencies.js && node ./install/install.js)
    npm ERR! Installing prebuilt OpenCV vundefined for plattform win32
    npm ERR! prebuild-install WARN install The specified module could not be found.
    npm ERR! prebuild-install WARN install \\?\C:\Users\nuc\Documents\GitHub\test-project\node_modules\opencv4nodejs-prebuilt\build\Release\opencv4nodejs.node
    npm ERR! npm ERR! code ETARGET
    npm ERR! npm ERR! notarget No matching version found for @nut-tree/opencv-build-win32@undefined.
    npm ERR! npm ERR! notarget In most cases you or one of your dependencies are requesting
    npm ERR! npm ERR! notarget a package version that doesn't exist.
    npm ERR!
    npm ERR! npm ERR! A complete log of this run can be found in:
    npm ERR! npm ERR!     C:\Users\nuc\AppData\Local\npm-cache\_logs\2022-01-07T15_36_23_564Z-debug-0.log
    npm ERR! node:child_process:903
    npm ERR!     throw err;
    npm ERR!     ^
    npm ERR!
    npm ERR! Error: Command failed: npm install --no-save @nut-tree/opencv-build-win32@undefined
    npm ERR! npm ERR! code ETARGET
    npm ERR! npm ERR! notarget No matching version found for @nut-tree/opencv-build-win32@undefined.
    npm ERR! npm ERR! notarget In most cases you or one of your dependencies are requesting
    npm ERR! npm ERR! notarget a package version that doesn't exist.
    npm ERR!
    npm ERR! npm ERR! A complete log of this run can be found in:
    npm ERR! npm ERR!     C:\Users\nuc\AppData\Local\npm-cache\_logs\2022-01-07T15_36_23_564Z-debug-0.log
    npm ERR!
    npm ERR!     at checkExecSyncError (node:child_process:826:11)
    npm ERR!     at execSync (node:child_process:900:15)
    npm ERR!     at install (C:\Users\nuc\Documents\GitHub\test-project\node_modules\opencv4nodejs-prebuilt\install\dependencies.js:5:5)
    npm ERR!     at Object.<anonymous> (C:\Users\nuc\Documents\GitHub\test-project\node_modules\opencv4nodejs-prebuilt\install\dependencies.js:26:5)
    npm ERR!     at Module._compile (node:internal/modules/cjs/loader:1101:14)
    npm ERR!     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    npm ERR!     at Module.load (node:internal/modules/cjs/loader:981:32)
    npm ERR!     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    npm ERR!     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    npm ERR!     at node:internal/main/run_main_module:17:47 {
    npm ERR!   status: 1,
    npm ERR!   signal: null,
    npm ERR!   output: [
    npm ERR!     null,
    npm ERR!     Buffer(0) [Uint8Array] [],
    npm ERR!     Buffer(392) [Uint8Array] [
    npm ERR!       110, 112, 109,  32,  69,  82,  82,  33,  32,  99, 111, 100,
    npm ERR!       101,  32,  69,  84,  65,  82,  71,  69,  84,  10, 110, 112,
    npm ERR!       109,  32,  69,  82,  82,  33,  32, 110, 111, 116,  97, 114,
    npm ERR!       103, 101, 116,  32,  78, 111,  32, 109,  97, 116,  99, 104,
    npm ERR!       105, 110, 103,  32, 118, 101, 114, 115, 105, 111, 110,  32,
    npm ERR!       102, 111, 117, 110, 100,  32, 102, 111, 114,  32,  64, 110,
    npm ERR!       117, 116,  45, 116, 114, 101, 101,  47, 111, 112, 101, 110,
    npm ERR!        99, 118,  45,  98, 117, 105, 108, 100,  45, 119, 105, 110,
    npm ERR!        51,  50,  64, 117,
    npm ERR!       ... 292 more items
    npm ERR!     ]
    npm ERR!   ],
    npm ERR!   pid: 7232,
    npm ERR!   stdout: Buffer(0) [Uint8Array] [],
    npm ERR!   stderr: Buffer(392) [Uint8Array] [
    npm ERR!     110, 112, 109,  32,  69,  82,  82,  33,  32,  99, 111, 100,
    npm ERR!     101,  32,  69,  84,  65,  82,  71,  69,  84,  10, 110, 112,
    npm ERR!     109,  32,  69,  82,  82,  33,  32, 110, 111, 116,  97, 114,
    npm ERR!     103, 101, 116,  32,  78, 111,  32, 109,  97, 116,  99, 104,
    npm ERR!     105, 110, 103,  32, 118, 101, 114, 115, 105, 111, 110,  32,
    npm ERR!     102, 111, 117, 110, 100,  32, 102, 111, 114,  32,  64, 110,
    npm ERR!     117, 116,  45, 116, 114, 101, 101,  47, 111, 112, 101, 110,
    npm ERR!      99, 118,  45,  98, 117, 105, 108, 100,  45, 119, 105, 110,
    npm ERR!      51,  50,  64, 117,
    npm ERR!     ... 292 more items
    npm ERR!   ]
    npm ERR! }
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     C:\Users\nuc\AppData\Local\npm-cache\_logs\2022-01-07T15_32_52_489Z-debug-0.log
    
    C:\Users\nuc\Documents\GitHub\test-project>node -v
    v16.13.1
    

    Steps to reproduce error npm i @nut-tree/nut-js

    opened by kokarn 14
  • Segmentation Fault when retrieving window title

    Segmentation Fault when retrieving window title

    Version Node v17.0.1 nut.js v2.0.1

    Short overview Trying to retrieve title of any window results in Seg Fault and no other information, program ends immediately.

    Issue occurs on

    • [ ] Virtual machine
    • [ ] Docker container
    • [x] Dev/Host system

    Detailed error description Seg fault is occurring on Big Sur any time I attempt to find a window title, either through getWindows or getActiveWindow.

    Steps to reproduce error Run this script:

    import { getActiveWindow } from '@nut-tree/nut-js';
    
    (async () => {
        const window = await getActiveWindow();
        const title = await window.title;
        console.log(title);
    })();
    

    Expected Result: Terminal

    Actual Result: zsh: segmentation fault node index.js

    bug DONE 
    opened by dwighthouse 13
  • Module could not be found | libnut.node

    Module could not be found | libnut.node

    Hi ✌️ ,

    I'm also currently switching from robotJS to nut.js and it seems I've got an equal issue, but with electron-builder... Maybe this has also happened to someone who have a solution?

    Thanks a lot 😄

    image

    On unpacked asar the message mentioned C:\Program Files\ Control\resources\app\node_modules@nut-tree\libnut-win32\build\Release\libnut.node

    "dependencies": {
            "@nut-tree/nut-js": "^2.0.2-next.20220121214305",
            "electron-updater": "^4.6.1",
        },
        "devDependencies": {
            "electron": "^15.3.5",
            "electron-builder": "^22.14.5",
            "electron-notarize": "^1.1.1",
            "electron-rebuild": "^3.2.7",
            "electron-updater": "^4.6.1"
        }
    
    opened by jonkad 12
  • [Question] Ability to recognize on scaling?

    [Question] Ability to recognize on scaling?

    Sometime resolution changes (Like adjusting browser) but still structure usually remain same so big button can become small button. For small difference it shouldn't matter too much right?

    Is there anyway we can get finder to work so small changes don't matter. so we can

     await mouse.move(straightTo(centerOf(screen.find("printButton.png"))));
    

    So sometime lets say u are searching printButton.png in browser but the size has changed slightly . Is there easy way to find location?

    Thanks

    question 
    opened by shirshak55 12
  • cant find darwin/fials compile gyp

    cant find darwin/fials compile gyp

    Version lastest

    Short overview cant find darwin/fials compile gyp Issue occurs on

    • [x] Virtual machine
    • [ ] Docker container
    • [x] Dev/Host system

    Detailed error description https://pastebin.com/cMYYHTLm Steps to reproduce error npx create-electron-app@latest my-app cd my-app npm install @hut-tree/nut-js npm start error

    Additional content

    Please provide any (mandatory) additional data to reproduce the error (Dockerfiles etc.)

    opened by richmailYT 11
  • Segmentation Fault with Node version 13 but not with version 12

    Segmentation Fault with Node version 13 but not with version 12

    I wanted to share with who may be interested.

    With NodeJS version 13 on Linux (Manjaro) I experienced some Segmentation Fault while using Nut.js - Especially the screen functions. Switching to Node version 12 solved the issue.

    I'm more than happy to do any testing if needed.

    question 
    opened by Kylir 11
  • Can't Install with Electron (Mac Big Sur). Error: Cannot find module

    Can't Install with Electron (Mac Big Sur). Error: Cannot find module "node_modules/opencv4nodejs-prebuilt/build/Release/opencv4nodejs"

    Version @nut-tree/nut-js: 1.6.0 electron: 12.0.2 electron-rebuild: 2.3.5 node-gyp: 8.0.0 opencv4nodejs: 5.6.0 Mac OS: 11.1

    Short overview I am trying to get nut.js to work with electron (my machine: Mac, OS 11.1). I have gone through the installation steps, but when I go to start the app, I continually get the error: Cannot find module "node_modules/opencv4nodejs-prebuilt/build/Release/opencv4nodejs".

    If I try to run $ npm run rebuild, I get the error:

    An unhandled error occurred inside electron-rebuild
    node-gyp failed to rebuild '/.../node_modules/opencv4nodejs'.
    Error: `make` failed with exit code: 2
    

    Issue occurs on

    • [ ] Virtual machine
    • [ ] Docker container
    • [X] Dev/Host system

    Detailed error description

    I have gone through the installation steps for Electron and Mac. Including (in my electron app): $ npm i @nut-tree/nut-js $ npm i -D electron-rebuild

    And then attempted to run $ npm i electron-rebuild

    but got error:

    Error: node-gyp failed to rebuild '/.../node_modules/opencv4nodejs'.
    Error: `make` failed with exit code: 2
    
    
        at ModuleRebuilder.rebuildNodeGypModule (/.../node_modules/electron-rebuild/lib/src/module-rebuilder.js:193:19)
        at processTicksAndRejections (internal/process/task_queues.js:93:5)
    

    I then installed additional items:

    $ xcode-select --install
    
    $ npm install opencv4nodejs
    
    $ npm install node-gyp
    

    All installed without error. But even after these steps, I still get the node gyp error above whenever I run $ npm run rebuild.

    And if I try $ npm start I get the error:

    App threw an error during load
    Error: Cannot find module '/.../node_modules/opencv4nodejs-prebuilt/build/Release/opencv4nodejs'
    
    

    Steps to reproduce error See above description of steps I've taken.

    Additional content

    N/A

    opened by NL33 10
  • Update @types/jest to the latest version 🚀

    Update @types/jest to the latest version 🚀

    The devDependency @types/jest was updated from 23.3.13 to 23.3.14.

    This version is not covered by your current version range.

    If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


    Find out more about this release.

    FAQ and help

    There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


    Your Greenkeeper bot :palm_tree:

    opened by greenkeeper[bot] 10
  • Make screen.find() more convenient on high-DPI devices

    Make screen.find() more convenient on high-DPI devices

    When capturing a screen region in a recent Windows version on a high-DPI device, the captured image can have a much higher resolution than scale-unaware applications such as node.exe might think (compare also this PR).

    For convenience, let's support scaling the "needle" image that nut.js is told to find.

    For example, on my laptop, where the scale factor is 200%, I would capture a rectangular region, save it as a .png file, then tell nut.js to find it thusly:

    await screen.find('needle.png', 10000, { scaleNeedle: true })
    
    opened by dscho 8
  • Crazy region based screenshot behavior on macOS

    Crazy region based screenshot behavior on macOS

    Version next

    Short overview Screenshots based on Regions on macOS are do not reflect screen content.

    Issue occurs on

    • [x] Virtual machine
    • [ ] Docker container
    • [ ] Dev/Host system

    Detailed error description I'm using the following workaround from #154 to create a screenshot of a region

      const regionCapture = async (
        selectedRegion: NutRegion,
        outputFilename: string
      ) => {
        const regionImage = await (<any>screen).vision.grabScreenRegion(
          selectedRegion
        );
        await (<any>screen).vision.saveImage(regionImage, outputFilename);
      };
    

    Based on the provided region, I receive various errors or incorrect images. I'm working on a 1920x1080 build agent and configured it as described here.

    with new NutRegion(0, 100, 650, 200) I get: ocr-screenshot

    with new NutRegion(0, 50, 325, 100) I get: ocr-screenshot Just thought a reduction of the resolution could help.

    with new NutRegion(0, 0, 1900, 1000) I get:

    [Wed Dec 09 2020 13:04:35 GMT+0000 (Coordinated Universal Time)] ERROR: Error in testcase getTextFromRegion: Error: Given width exceeds display dimensions
    Error: Error: Given width exceeds display dimensions
        at Object.module.exports.screen.capture (/Users/runner/work/sakuli-ocr/sakuli-ocr/packages/sakuli-ocr/node_modules/@nut-tree/libnut-darwin/index.js:32:16)
        at /Users/runner/work/sakuli-ocr/sakuli-ocr/packages/sakuli-ocr/node_modules/@nut-tree/nut-js/dist/lib/provider/native/libnut-screen-action.class.js:30:46
        at new Promise (<anonymous>)
        at ScreenAction.grabScreenRegion (/Users/runner/work/sakuli-ocr/sakuli-ocr/packages/sakuli-ocr/node_modules/@nut-tree/nut-js/dist/lib/provider/native/libnut-screen-action.class.js:29:16)
        at VisionAdapter.grabScreenRegion (/Users/runner/work/sakuli-ocr/sakuli-ocr/packages/sakuli-ocr/node_modules/@nut-tree/nut-js/dist/lib/adapter/vision.adapter.class.js:43:28)
    

    Whole screen Funny enough, when I take a screenshot with grabScreen, it looks as expected. 2020-12-09T13-22-21_error_e2e-suite_getTextFromRegion

    Steps to reproduce error As this happens on a build agent and because I've no mac myself, I cannot provide any information, unfortunately.

    wontfix 
    opened by svettwer 8
Releases(v2.3.0)
Owner
nut-tree
Delicious nuts to test your native UI
nut-tree
Node.js Desktop Automation.

Node.js Desktop Automation. Control the mouse, keyboard, and read the screen. RobotJS supports Mac, Windows, and Linux. This is a work in progress so

Jason Stallings 11.5k Dec 28, 2022
local storage wrapper for both react-native and browser. Support size controlling, auto expiring, remote data auto syncing and getting batch data in one query.

react-native-storage This is a local storage wrapper for both react native apps (using AsyncStorage) and web apps (using localStorage). ES6 syntax, pr

Sunny Luo 2.9k Dec 16, 2022
A testing focused Remix Stack, that integrates E2E & Unit testing with Playwright, Vitest, MSW and Testing Library. Driven by Prisma ORM. Deploys to Fly.io

Live Demo · Twitter A testing focused Remix Stack, that integrates E2E & Unit testing with Playwright, Vitest, MSW and Testing Library. Driven by Pris

Remix Stacks 18 Oct 31, 2022
Vlc-bgm - Web interface for controlling VLC remotely to use as a background music (BGM) player

vlc-bgm Web interface for controlling VLC remotely to use as a background music (BGM) player About This is designed to be used when VLC is running on

David Ralph 3 Mar 5, 2022
This is a CI/CD and version controlling tool for smart contracts which is an award winning project built for ETHPrague Hackaton.

Inspiration Alfred is built-in version control and CI/CD system for your smart contracts. It uses proxy contract and a DAO to upgrade or downgrade you

Mete Karasakal 10 Aug 30, 2022
A library for controlling the Minecraft Console Client and making bots for it in JavaScript/TypeScript.

MCC.jS About A work in progress JavaScript/TypeScript library for remote control and bot creation for the Minecraft Console Client using RPC over WebS

Anon 2 Sep 14, 2022
Library for controlling MESH blocks using JavaScript.

MESH.js Library for controlling MESH blocks using JavaScript. MESH official web site is here. Verified Environment Node.js (16.15.1) npm (8.11.0) Prer

MESH project 6 Nov 22, 2022
🐐 Simple and complete React DOM testing utilities that encourage good testing practices.

React Testing Library Simple and complete React DOM testing utilities that encourage good testing practices. Read The Docs | Edit the docs Table of Co

Testing Library 17.3k Jan 4, 2023
🐐 Simple and complete React DOM testing utilities that encourage good testing practices.

React Testing Library Simple and complete React DOM testing utilities that encourage good testing practices. Read The Docs | Edit the docs Table of Co

Testing Library 17.3k Jan 4, 2023
Javascript-testing-practical-approach-2021-course-v3 - Javascript Testing, a Practical Approach (v3)

Javascript Testing, a Practical Approach Description This is the reference repository with all the contents and the examples of the "Javascript Testin

Stefano Magni 2 Nov 14, 2022
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.

?? Playwright Documentation | API reference Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit w

Microsoft 46.3k Jan 9, 2023
AREX: It is a “Differential Testing” and “Record and Replay Testing” Tool.

AREX: It is a “Differential Testing” and “Record and Replay Testing” Tool. Test restful API by record, replay and stub request/response. Differential

ArexTest 15 Nov 1, 2022
Vue Native is a framework to build cross platform native mobile apps using JavaScript

Vue Native Visit our website at vue-native.io or read the official documentation here. Build native mobile apps using Vue Vue Native is a framework to

GeekyAnts 8.4k Jan 6, 2023
Build performant, native and cross-platform desktop applications with native Vue + powerful CSS like styling.🚀

Vue NodeGui Build performant, native and cross-platform desktop applications with Vue. ?? Vue NodeGUI is powered by Vue ?? and Qt5 ?? which makes it C

NodeGui 765 Dec 30, 2022
🎉 toastify-react-native allows you to add notifications to your react-native app (ios, android) with ease. No more nonsense!

toastify-react-native ?? toastify-react-native allows you to add notifications to your react-native app (ios, android) with ease. No more nonsense! De

Zahid Ali 29 Oct 11, 2022
null 136 Dec 30, 2022
Next-level academia! Repository for the Native Overleaf project, attempting to integrate Overleaf with native OS features for macOS, Linux and Windows.

Native Overleaf Overleaf is a fantastic webtool for writing and cooperating on LaTeX documents. However, would it not be even better if it were to beh

Floris-Jan Willemsen 40 Dec 18, 2022
Insanely fast, full-stack, headless browser testing using node.js

Zombie.js Insanely fast, headless full-stack testing using Node.js The Bite If you're going to write an insanely fast, headless browser, how can you n

Assaf Arkin 5.6k Dec 22, 2022
End-to-end testing framework written in Node.js and using the Webdriver API

Nightwatch.js Homepage | Getting Started | Developer Guide | API Reference | About Automated end-to-end testing framework powered by Node.js and using

Nightwatch.js 11.3k Jan 7, 2023
A node.js library for testing modern web applications

Taiko Docs | API reference A Node.js library for testing modern web applications What’s Taiko? Taiko is a free and open source browser automation tool

Gauge 3.2k Dec 30, 2022