{"id":13876210,"url":"https://github.com/theintern/recorder","last_synced_at":"2025-04-13T04:33:35.194Z","repository":{"id":33044299,"uuid":"36680185","full_name":"theintern/recorder","owner":"theintern","description":"Automatically record Intern functional tests from your browser.","archived":false,"fork":false,"pushed_at":"2018-03-29T21:56:12.000Z","size":950,"stargazers_count":80,"open_issues_count":7,"forks_count":14,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-26T21:47:19.447Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/theintern/intern/issues?q=label%3Arecorder","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theintern.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-01T18:30:17.000Z","updated_at":"2022-11-21T01:54:47.000Z","dependencies_parsed_at":"2022-06-27T04:51:02.133Z","dependency_job_id":null,"html_url":"https://github.com/theintern/recorder","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theintern%2Frecorder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theintern%2Frecorder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theintern%2Frecorder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theintern%2Frecorder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theintern","download_url":"https://codeload.github.com/theintern/recorder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248664723,"owners_count":21142017,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-06T06:01:09.427Z","updated_at":"2025-04-13T04:33:34.861Z","avatar_url":"https://github.com/theintern.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","others"],"sub_categories":[],"readme":"# Intern Recorder\n\n\u003c!-- start-github-only --\u003e\n\u003cbr\u003e\u003cp align=\"center\"\u003e\u003cimg src=\"https://cdn.rawgit.com/theintern/recorder/master/docs/logo.svg\" alt=\"Intern Recorder logo\" height=\"128\"\u003e\u003c/p\u003e\u003cbr\u003e\n\u003c!-- end-github-only --\u003e\n\n\u003c!-- start-github-only --\u003e\n[![CI status](https://travis-ci.org/theintern/recorder.svg)](https://travis-ci.org/theintern/recorder) \u003c!-- end-github-only --\u003e \n[![Intern](https://theintern.io/images/intern-v4.svg)](https://github.com/theintern/intern/)\n\nThe Intern Recorder is a Chrome Developer Tools extension that assists in the\ncreation of functional tests for Web applications by automatically recording\nuser interaction with a browser into a format compatible with the Intern\n4+ testing framework.\n\n\u003c!-- vim-markdown-toc GFM --\u003e\n\n* [Installation](#installation)\n* [Usage](#usage)\n  * [Hotkeys](#hotkeys)\n  * [Configuration](#configuration)\n* [Developing](#developing)\n  * [Setup](#setup)\n  * [Internal architecture](#internal-architecture)\n  * [Debugging](#debugging)\n* [Support](#support)\n* [Special thanks](#special-thanks)\n* [Licensing](#licensing)\n\n\u003c!-- vim-markdown-toc --\u003e\n\n## Installation\n\nThe latest version of Intern Recorder can be installed for free from the\n[Chrome Web Store].\n\n## Usage\n\nThe Intern Recorder is a Dev Tools extension, so it can be accessed from the\nDev Tools panel. On a tab you wish to record, open Dev Tools, then select the\nIntern tab.\n\n![Intern UI](https://raw.githubusercontent.com/theintern/recorder/master/docs/usage.png)\n\nStart recording actions by clicking the **start/stop recording** button. The\nrecorder automatically generates a single suite containing all the generated\ntests for the session.\n\nThe **clear tests** button will remove all previously recorded actions/tests.\n\nThe **new test** button will create a new test.\n\nThe **save** button will save the generated test script to a file.\n\n### Hotkeys\n\nThe Recorder also includes configurable hotkeys that can be used to perform\ncommon operations during a test recording. These operations are:\n\n* **Pause/resume recorder**. This is equivalent to clicking the record button in\n  Dev Tools.\n* **Insert callback**. This inserts a `then` command into the script containing an\n  empty callback function.\n* **Insert \u003cem\u003emove to current mouse position\u003c/em\u003e**. This inserts a `moveMouseTo` command\n  into the script wherever the mouse is currently positioned.\n\n\u003e 💡 The hotkeys only work when you are focused on the tab of the page\nbeing tested. Pressing the hotkeys when the Dev Tools window is focused will do\nnothing.\n\n\u003e 💡 The default hotkeys may not work as expected on your system’s keyboard\n\n### Configuration\n\nCurrently, the only configuration available for the Intern Recorder are the\nhotkey combinations. Simply click in one of the input fields and press the key\ncombination you’d like to use to configure hotkeys. Hotkey configuration is\npersisted to local storage.\n\n## Developing\n\n### Setup\n\n1. Clone this repository\n2. Run `npm install` and `npm build-watch`. This will start a build watcher\n   that will update Intern Recorder as you make changes.\n3. Opening the Extensions tab in Chrome (`chrome://extensions`)\n4. Enable Developer mode with the toggle at the top of the page\n5. Choose ‘LOAD UNPACKED’ and select the directory `\u003crecorder_repo\u003e/build`\n\n### Internal architecture\n\nChrome restricts which extension APIs are available to Dev Tools scripts, so\nthe Recorder is designed using a multi-process architecture:\n\n![Intern UI](https://theintern.github.io/recorder/images/architecture.svg)\n\nThe recorder itself is maintained in the background script, which has access to\nthe full Chrome extension API. The user interface is displayed from the Dev\nTools page script and communicates with the recorder through a `chrome.runtime`\nmessaging port. To intercept page interaction, the background script injects an\nevent forwarding script into the browser tab that listens for various DOM\nevents and passes them to the recorder through a second `chrome.runtime`\nmessaging port.\n\n### Debugging\n\n* Injected content (`content.ts`, `EventProxy.ts`): Errors and console\n  statements will show up directly in Dev Tools for the page being recorded.\n* Background script (`background.ts`, `Recorder.ts`): Open the Chrome\n  extensions tab, find Intern Recorder in the list of loaded extensions, and\n  click the “background page” link next to “Inspect views”. This will open a\n  new Dev Tools window for the background script.\n* Dev tools page (`devtools.html`, `devtools.ts`, `panel.html`,\n  `RecorderProxy.ts`): Open Dev Tools, undock it (using the top right icon,\n  next to Settings), choose the Intern tab, then open another Dev Tools window.\n  The second Dev Tools window will be inspecting the first Dev Tools window.\n\n## Support\n\nAny general questions about how to use Intern Recorder should be directed to\n[Stack Overflow](https://stackoverflow.com) (using the `intern` tag) or our\n[Gitter channel](https://gitter.im/theintern/intern).\n\nIf you think you’ve found a bug or have a specific enhancement request, file an\nissue in the [issue tracker](https://github.com/theintern/recorder/issues).\nPlease read the [contribution guidelines](./CONTRIBUTING.md) for more\ninformation.\n\n## Special thanks\n\nA very special thanks to [Built](https://www.getbuilt.com/) for sponsoring the\nwork to update Recorder for Intern 4!\n\nContinuing thanks to [SITA](https://www.sita.aero/) for sponsoring the first\nrelease of the Intern Recorder and making this tool possible.\n\n\u003c!-- start-github-only --\u003e\n## Licensing\n\nIntern Recorder is a JS Foundation project offered under the [New BSD](LICENSE) license.\n\n© [SitePen, Inc.](http://sitepen.com/) and its [contributors](https://github.com/theintern/recorder/graphs/contributors)\n\u003c!-- end-github-only --\u003e\n\n[Chrome Web Store]: https://chrome.google.com/webstore/detail/intern-recorder/oalhlikaceknjlnmoombecafnmhbbgna\n[contribution guidelines]: ./CONTRIBUTING.md\n[main issue tracker]: https://github.com/theintern/intern/issues/new?body=Description:%0A%0ASteps+to+reproduce:%0A%0A1.%20%E2%80%A6%0A2.%20%E2%80%A6%0A3.%20%E2%80%A6%0A%0AExpected%20result:%0AActual%20result:%0A%0AIntern%20version:%0ARecorder%20version:%0A%0AAny%20additional%20information:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheintern%2Frecorder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheintern%2Frecorder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheintern%2Frecorder/lists"}