@testersai/puppeteer
The easiest way to AI-upgrade your existing Puppeteer suite. You already have the tests — this adds AI Checks at the moments that matter, without replacing your framework, runner, or CI pipeline.
analyze_* call, or define your own.new TestersAIPage(page) wraps the puppeteer Page and hooks console/response events.
# Download testersai-javascript-puppeteer-0.1.0.tar.gz from the Downloads page, then:
tar -xzf testersai-javascript-puppeteer-0.1.0.tar.gz
cd testersai-javascript-puppeteer-0.1.0
npm install ./testersai-sdk-0.1.0.tgz ./testersai-puppeteer-0.1.0.tgz
A complete, runnable JavaScript / TypeScript + Puppeteer example.
const puppeteer = require('puppeteer');
const { TestersAIPage } = require('@testersai/puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
const ta = new TestersAIPage(page);
await page.goto('https://example.com');
await ta.analyzeScreenshot();
await browser.close();
})();
Whatever test runner you're using. Default disk sink writes JSON to ./testersai-results.
If the AI call fails — rate limit, hang, firewall, no network — the SDK gives up
fast and returns a skipped result. Your Puppeteer test is never blocked.
Rule of thumb: wherever a human reviewer would pause to look during a manual run. These recommendations are tuned for Puppeteer — pick the ones that fit your suite.
The page just re-rendered. Ask "does this look right?" before any interaction.
Login, add-to-cart, toggle, submit. The UI just reflected a new state — where regressions hide.
You were about to check one thing. Ask the AI about everything else for free.
API returned, spinner gone, toast shown. Catch broken empty-states and stale data.
A single console + network check at the end of every test catches issues your assertions ignored.
Mobile vs. desktop, light vs. dark, locale change. One call per viewport.
./testersai-results.Or grab the monolith ZIP (all languages, all adapters).