gitmyhub

chromeless

TypeScript ★ 13k updated 7y ago ▣ archived

🖥 Chrome automation made simple. Runs locally or headless on AWS Lambda.

Chromeless was a TypeScript library for automating Chrome, clicking, form-filling, screenshots, with a unique option to run those browser sessions on AWS Lambda in parallel. Now deprecated in favor of Puppeteer.

TypeScriptNode.jsChromeAWS LambdaServerlesssetup: moderatecomplexity 3/5

Chromeless was a library for controlling a Chrome browser through code, letting you write scripts that open web pages, click on things, fill out forms, take screenshots, and extract data, all without a person sitting at a keyboard. It was aimed at developers who needed to run automated tests against a real browser or scrape web content that requires JavaScript to render. The project has since been deprecated in favor of Puppeteer, a similar tool now maintained by Google, but the repository remains available for reference.

The main appeal of Chromeless was that it could run in two modes. In local mode, it drove a Chrome installation on your own machine, which made for a fast feedback loop during development. In remote mode, it would spin up Chrome on AWS Lambda, a cloud computing service, and control it from your laptop over a network connection. The remote mode meant you could run hundreds of browser sessions in parallel, drastically cutting the time needed to run large test suites. The project notes that one team reduced their test run time from around 20 minutes to a few seconds using this approach.

The code API was designed to chain commands together in a readable sequence. A typical script would go to a URL, type into a search field, press a key, wait for a result to appear, then take a screenshot, all in a few lines of code. This style made the scripts easier to read than older browser automation tools that required more setup.

The project includes a proxy service built on the Serverless framework for deployment to AWS Lambda, along with full API documentation covering all the available browser commands. A browser-based demo playground was also available for trying out the API without installing anything.

The README is reasonably detailed and covers installation, both local and remote usage patterns, and the full list of supported API methods.

Where it fits