{"id":37672053,"url":"https://github.com/kochelmonster/recordwright","last_synced_at":"2026-01-16T12:05:46.431Z","repository":{"id":184892308,"uuid":"672645670","full_name":"kochelmonster/recordwright","owner":"kochelmonster","description":"An extension for recording and playback of web interactions in playwright","archived":false,"fork":false,"pushed_at":"2025-06-07T17:07:30.000Z","size":215,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-23T21:53:08.031Z","etag":null,"topics":["python","test-automation","test-tools","webdevelopment"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kochelmonster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-30T19:28:13.000Z","updated_at":"2025-06-07T17:07:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"bc4b733c-ca02-404b-9968-0e7fea94eaf7","html_url":"https://github.com/kochelmonster/recordwright","commit_stats":null,"previous_names":["kochelmonster/recordwright"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kochelmonster/recordwright","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kochelmonster%2Frecordwright","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kochelmonster%2Frecordwright/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kochelmonster%2Frecordwright/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kochelmonster%2Frecordwright/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kochelmonster","download_url":"https://codeload.github.com/kochelmonster/recordwright/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kochelmonster%2Frecordwright/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["python","test-automation","test-tools","webdevelopment"],"created_at":"2026-01-16T12:05:46.331Z","updated_at":"2026-01-16T12:05:46.416Z","avatar_url":"https://github.com/kochelmonster.png","language":"JavaScript","readme":"# Recordwright [![PyPI version](https://badge.fury.io/py/recordwright.svg)](https://badge.fury.io/py/recordwright)\n\nAn extension for recording and playback of web interactions in [Playwright](https://pypi.python.org/pypi/playwright/).\n\n\nWhile other interaction recorders generate code that you have to extend with your tests, Recordwright integrates the interactions into your test. The first time you run the test, the interaction is recorded, and the following time the recording is played back. If the interaction changes it can be simply recorded again. You do not need to rewrite the whole test.\n\nRecordwright records every event and can also play back drag and drop operations.\n\n## Installation\n\nTo install Recordwright\n```bash\npip install recordwright\n```\n\n## Usage\n\nThe following example demonstates  the usage of Recordwright\n\n```python\nfrom playwright.sync_api import sync_playwright\nfrom recordwright import install as install_recorder  # import Recordwright\n\nif __name__ == \"__main__\":\n    with sync_playwright() as p:\n        browser = p.chromium.launch(headless=False)\n        page = browser.new_page()\n        page.goto(\"https://demo.playwright.dev/todomvc\")\n\n        page.get_by_placeholder(\"What needs to be done?\").wait_for()\n\n        # injects the recording code into the page\n        recorder = install_recorder(page)\n\n        # if there is no replay file \"todo.json, the recording is started and \n        # the result is stored in a replay file.\n        # Otherwise the replay file will be replayed.\n        recorder.interaction(\"todo\", \"\"\"\n        - Click \"What needs to be done\"\n        - Type \"Test RecordWright\"\n        - Press Enter\n        \"\"\")\n\n        lis = page.get_by_test_id(\"todo-item\")\n        item = lis.first\n        assert(item.inner_text() == \"Test RecordWright\")\n\n        browser.close()\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkochelmonster%2Frecordwright","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkochelmonster%2Frecordwright","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkochelmonster%2Frecordwright/lists"}