{"id":14984374,"url":"https://github.com/gedex/simflow","last_synced_at":"2025-04-10T20:08:50.416Z","repository":{"id":57359688,"uuid":"162916950","full_name":"gedex/simflow","owner":"gedex","description":"Simply define and run your flows in Chrome.","archived":false,"fork":false,"pushed_at":"2019-02-17T11:57:00.000Z","size":187,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-01T01:03:48.252Z","etag":null,"topics":["automation","chrome","flow","headless-chrome","nodejs-cli","web"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/gedex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-23T19:04:03.000Z","updated_at":"2024-11-28T06:01:19.000Z","dependencies_parsed_at":"2022-09-06T22:22:14.568Z","dependency_job_id":null,"html_url":"https://github.com/gedex/simflow","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gedex%2Fsimflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gedex%2Fsimflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gedex%2Fsimflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gedex%2Fsimflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gedex","download_url":"https://codeload.github.com/gedex/simflow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248288350,"owners_count":21078903,"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":["automation","chrome","flow","headless-chrome","nodejs-cli","web"],"created_at":"2024-09-24T14:08:56.515Z","updated_at":"2025-04-10T20:08:50.394Z","avatar_url":"https://github.com/gedex.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"simflow\n=======\n\nSimply define and run your flows in Chrome.\n\n[![NPM Version][npm-image]][npm-url]\n[![Build][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\n## Install\n\n```\nnpm i -g simflow\n```\n\n## Usage\n\n```\nsimflow \u003cflows...\u003e [options...]\n```\n\nFlows are defined in JSON config file.\n\n### Example\n\nThis example demonstrates a simple flow of searching GitHub project and take\na sreenshot of search results.\n\n* Create `example-gh-simflow.json`:\n\n  ```json\n  {\n    \"url\": \"https://github.com\",\n    \"references\": {\n      \"searchField\": \"[name='q']\",\n      \"searchButton\": \"[type='submit']\"\n    },\n    \"flows\": {\n      \"search\": [\n        \"Goto '/search'\",\n        \"See searchField\",\n        \"Type in searchField 'simflow'\",\n        \"See searchButton\",\n        \"Click searchButton\",\n        \"Wait page { to: 'reload' }\",\n        \"Save screenshot as 'search-results.png'\",\n        \"Save page as 'search-results.html'\"\n      ]\n    }\n  } \n  ```\n\n* Run `search` flow from `example-gh-simflow.json` config file:\n\n  ```\n  simflow search -c ./example-gh-simflow.json\n  ```\n\n## Config\n\n*This is under heavy development and structure may changes.*\n\n| Key | Type | Description |\n| --- | ---- | ----------- |\n| `url` | `string` | **Required**. Base URL. New page opens this URL. Defined path (i.e., `Goto /path`) in steps section uses this base URL. |\n| `references` | `object` | List of references to be used in steps of a flow. |\n| `flows` | `objects` |  **Required**. Flow names mapped to array of steps. Named flows are passed to `simflow` as args. |\n\n### Step\n\nStep is a string with grammar defined in a [PEG](https://en.wikipedia.org/wiki/Parsing_expression_grammar) file [`lib/step.pegjs`](./lib/step.pegjs).\n\nSome example of steps:\n\n```\n// Use reference.\nClick namedSelector\nClick namedSelector@frameName\n\n// Use literal string for selector.\nClick '.header h1'@'frameName'\n\nType into namedSelector \"hello world\"\n\nPress 'Enter'\n\n// Step arguments.\nPress 'Enter' { delay: 1000 }\nSave screenshot as './screenshots/filename.png' { fullPage: true }\nSave page as './pages/index.pdf' { output: 'pdf' }\n```\n\n[npm-image]: https://img.shields.io/npm/v/simflow.svg\n[npm-url]: https://npmjs.org/package/simflow\n[travis-image]: https://img.shields.io/travis/gedex/simflow/master.svg?label=linux\n[travis-url]: https://travis-ci.org/gedex/simflow\n[coveralls-image]: https://img.shields.io/coveralls/gedex/simflow/master.svg\n[coveralls-url]: https://coveralls.io/r/gedex/simflow?branch=master\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgedex%2Fsimflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgedex%2Fsimflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgedex%2Fsimflow/lists"}