Standalone web test project that uses framework-engine as a library. The engine sees one framework, web, and the configured driver decides whether the backend is Playwright or Selenium.
npm installnpm run engine:playwright
npm run engine:seleniumDry-run variants are available too:
npm run engine:playwright:dry-run
npm run engine:selenium:dry-runThe runner at scripts/run-framework-engine.mjs imports framework-engine, loads the selected config, and prints the normalized execution summary returned by the engine.
The Playwright config uses Docker:
framework: web
driver: playwright
executor:
type: dockerThe Selenium config uses the local executor:
framework: web
driver: selenium
executor:
type: localsrc/locators/checkoutLocators.tskeeps selectors in one place.src/pages/CheckoutPage.tsdefines the shared page-object contract.src/pages/playwright/PlaywrightCheckoutPage.tsimplements that contract with Playwright.src/pages/selenium/SeleniumCheckoutPage.tsimplements that contract with Selenium WebDriver.src/specs/checkoutContract.tsdefines the shared test scenarios.tests/demo-app.spec.tsbinds the shared tests to the Playwright page-object adapter.scripts/run-selenium-contract.tsbinds the same shared scenarios to the Selenium page-object adapter and writesresults.jsonfor the engine.
npm test
npm run test:headedArtifacts are written to test-results/. The engine run also generates Playwright JSON, HTML, and Allure report output there.
npm run seleniumThe Selenium path requires a local Chrome installation. Selenium Manager resolves ChromeDriver automatically.