Need help with softest?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

214 Stars 23 Forks BSD 2-Clause "Simplified" License 150 Commits 9 Opened issues


Recording Browser Interactions And Generating Test Scripts.

Services available


Need anything else?

Contributors list

# 256,916
149 commits



build status Known Vulnerabilities license

The softest is a test tool for recording browser interactions and generating test scripts, simple and practical. It allows you to get test scripts without writing code.


🔍 Why

When I needed a tool that could record browser interactions and generate corresponding scripts, I found puppeteer-recorder and Selenium IDE, of course, they are excellent projects. But I found that they can't support multi-tab recording, screenshots, etc., and Selenium IDE always gives an error when playing a script, so I made this wheel.

🔥 Features

Supported Features

  • Single tab recording
  • Multiple tab recording
  • Screenshot
  • Generating test script
  • Playback script
  • Download test report (contains screenshots and test script)

Supported Interactions

  • Click
  • New tab
  • Close tab
  • Change URL
  • Input
  • Scroll page

Tab switching rules: temporarily not support manual tapping tabs to switch pages. For example, opened three tabs, currently in the latest tab3, you can't manually switch to tab2 or tab1 at this time, which will cause inconsistency, but you can go back to tab2 through close tab3, then close tab2 and return to tab1.

⚙️ Installation


  • Node >= v10.16.3 (recommend v12.8.0)
  • Npm (recommend 6.10.2)
$ npm i -g softest

The softest is based on Puppeteer, when downloading Puppeteer, Chromium will be downloaded by default. Chinese users may be affected by GFW. If you encounter difficulties, you can move to

🚀 Usage

Add environment variables to facilitate running commands:

$ export PATH=$PATH:$HOME/.npm-global/bin

has only a few parameters:
$ softest --help
Usage: index [options]

Options: -h, --host Server hostname, optional. (default: "") -p, --port Server port, optional. (default: 2333) -c, --chromium The absolute path of the chromium execution file, necessary. -r, --report The absolute path of the test report, necessary. -h, --help output usage information

To run the

command, you need to specify the directory where the Chromium and the directory where the test report is saved:

If you don't know where the Chromium is, you can start Chromium and type

in the address bar to find the location of its executable.

If you see an output similar to the following, congratulations 🎉🎉🎉👏

 _______  _______  _______  _______  _______  _______  _______
|       ||       ||       ||       ||       ||       ||       |     status: running
|  _____||   _   ||    ___||_     _||    ___||  _____||_     _|     host:
| |_____ |  | |  ||   |___   |   |  |   |___ | |_____   |   |       port: 2333
|_____  ||  |_|  ||    ___|  |   |  |    ___||_____  |  |   |
 _____| ||       ||   |      |   |  |   |___  _____| |  |   |
|_______||_______||___|      |___|  |_______||_______|  |___|

🎉 Running WebSocket server successfully

🎉 Running HTTP server successfully

Open a browser, type

, you will see the following web interface:


⭐️ Show Your Support

Please give a ⭐️ if this project helped you!

👏 Contributing

If you have any questions or requests or want to contribute to

or other packages, please write the issue or give me a Pull Request freely.

🐞 Bug Report

If you find a bug, please report to us opening a new Issue on GitHub.

📝 License

See LICENSE for more information.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.