cypress-generator
v1.3.0
Published
Generate real-world Cypress E2E specs from scraped pages — data-cy-first selectors, login support, and optional Flask web UI.
Maintainers
Readme
cypress-generator
Generate real-world Cypress E2E specs from a live page — data-cy / data-testid first, correct actions, beforeEach isolation, optional cy.session login, plus an optional Flask web UI.
npm: cypress-generator · latest: 1.3.0
Install
npm install -g cypress-generatorOr run once:
npx cypress-generator https://example.comCLI
Generate a .cy.js file (new in 1.3)
cypress-generator <url> [options]
Options:
-o, --out <dir> Output directory (default: ./cypress/e2e)
-f, --filename <name> Output filename
-n, --name <suite> describe() suite name
--login-url <url> Login page URL
--username <user> Login username
--password <pass> Login password
--stdout Print script to stdout
--json Print scrape metadata to stderr# Public page
npx cypress-generator https://example.com -o cypress/e2e -f example.cy.js
# Authenticated scrape
npx cypress-generator https://app.example/dashboard \
--login-url https://app.example/login \
--username qa.user \
--password 'secret'Alias: csg
Web UI (unchanged default)
cypress-generator
# or
cypress-generator --serverOpens the Flask UI at http://localhost:5001. Requires Python deps:
cd node_modules/cypress-generator/backend # or clone this repo
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txtProgrammatic API
const {
scrapePage,
generateCypressScript,
writeCypressScript,
} = require('cypress-generator');
(async () => {
const result = await scrapePage('https://example.com');
const script = generateCypressScript(result, { suiteName: 'Example' });
writeCypressScript(script, 'cypress/e2e', 'example.cy.js');
})();Selector priority
Follows Cypress best practices:
data-cydata-testid/data-testaria-label/ rolename/ stableid- visible text (last resort)
Changelog
1.3.0
- Node CLI scrape →
.cy.jsgeneration (no Python required for CLI generate mode) - Cypress best-practice selector ranking and action mapping
- Dual-mode CLI:
cypress-generatorstarts UI;cypress-generator <url>writes specs - Optional login via
--login-url/--username/--password
1.2.0
- Prior AI-assisted Flask generator, Livewire support, repo mode (see previous releases)
Requirements
- CLI generate mode: Node.js 18+
- Web UI mode: Python 3.8+ and
backend/requirements.txt
License
MIT
