Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SeleniumHQ/selenium-ide
Open Source record and playback test automation for the web.
https://github.com/SeleniumHQ/selenium-ide
electron playback record selenium selenium-ide webdriver webextension
Last synced: 3 days ago
JSON representation
Open Source record and playback test automation for the web.
- Host: GitHub
- URL: https://github.com/SeleniumHQ/selenium-ide
- Owner: SeleniumHQ
- License: apache-2.0
- Created: 2017-08-08T11:37:00.000Z (over 7 years ago)
- Default Branch: trunk
- Last Pushed: 2024-09-24T14:20:31.000Z (about 2 months ago)
- Last Synced: 2024-10-29T14:53:06.168Z (10 days ago)
- Topics: electron, playback, record, selenium, selenium-ide, webdriver, webextension
- Language: TypeScript
- Homepage: https://selenium.dev/selenium-ide/
- Size: 32 MB
- Stars: 2,808
- Watchers: 160
- Forks: 766
- Open Issues: 422
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Selenium IDE
![logo](https://www.seleniumhq.org/selenium-ide/img/selenium-ide128.png)
_An integrated development environment for Selenium scripts_
Selenium IDE as an electron application written to enable recording and playback of selenium scripts.## Installation
Installation can be performed in a variety of ways:
1. Prepackaged binaries are available to be installed directly as github releases.
2. Selenium-ide can be installed via npm `npm install -g selenium-ide` and run via `selenium-ide` directly.
3. The application can be built manually using the below instructions.### Building Manually
To build manually, you must have the below prerequisites installed and follow the steps afterward.
#### Prerequisites
- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- [NodeJS v16](https://nodejs.org/en/download/)
- [Pnpm](https://pnpm.io/installation)#### Building
1. `git clone https://github.com/SeleniumHQ/selenium-ide` - Clone the IDE repo
2. `cd selenium-ide` - Navigate into the IDE folder
3. `pnpm -r i` - Install dependencies
4. `pnpm run build` - Build the app
5. `pnpm run start` - Run the app## What now?
Here's a draft of the general tasks ahead. Feel free to pitch in and announce which you wish to take upon yourself:
- Selectors accuracy - an option is ranking selectors - we can optimize selectors correctness and test stability by collecting as many attributes as we can per user event. The most likely properties will be used for the selectors, with fallback to the others.
- Intelligent editing
- Export to selenium code in different languages## Contributing
If you'd like to contribute to the codebase, start by building manually using the above commands. The below tips are meant to assist you as well.
- If you'd like to iterate more quickly, `yarn watch` will facilitate near-realtime rebuilding for rapid iteration (make change -> `yarn start` -> test change)
- To activate the devtools on an page, `CommandOrControl+F12` or `CommandOrControl+Option+I` will open the devtools. For your convenience, the [React Developer Tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en) are pre-installed in the electron environment.
- VSCode has a defined workspace structure and run command, as well as file mappings to allow for breakpoints to work across sourcemaps for the main process.
- The chrome dev tools are available at `localhost:8315` to use if the inline devtools are not enough, although I'd highly advocate for the in window dev tools, since they have the React Developer Tools installed as well.## Questions or want to chat?
If you have questions, check out [our FAQ](https://github.com/SeleniumHQ/selenium-ide/wiki/Frequently-Asked-Questions).
You can also find us on the [#selenium](irc://freenode.net/selenium) IRC
channel, which is also available on
[Slack](https://www.selenium.dev/support/#ChatRoom).## Architecture
The codebase is javascript, and relies heavily on the NodeJS, Electron, and
React ecosystem. This is a collection of packages arranged in a monorepo
config. Excepting the code-export packages, which are fully untyped, these
packages are fully typed using Typescript.### Packages
These are the main packages. They're used to run the thing:
- selenium-ide: Main Electron app. Built with webpack, react frontend. Communicates
via the IPC protocols.- side-runner: NodeJS Task Runner. Built with typescript.
- side-cli: Experimental cli using react and ink.
- side-runtime: Playback system wrapper. Takes side files and executes
them. Used by both selenium-ide and side-runner.- side-api: This is the api shape of selenium-ide. This is intended to be used
to help share the api types with plugins in a lower footprint way.- side-model: This is used to provide metadata around the standard commands and
argument types.- side-commons: This is like the typical utils/helpers folder, except meant to
be shared across packages instead of just folders.- side-code-export: NodeJS transpiler for .side files. Used to export to other
languages (csharp, java, javascript, python, ruby).- code-export-*: Code export format for various languages