@bangstack/cdp
v1.0.0
Published
Chrome DevTools Protocol driver with mesh observability for browser automation
Maintainers
Readme
@bangstack/cdp
Chrome DevTools Protocol driver with mesh observability for browser automation.
Installation
npm install @bangstack/cdp @bangstack/coreQuick Start
import { launchBrowser, createTestContext } from '@bangstack/cdp';
import { createMesh } from '@bangstack/core';
// Low-level browser control
const browser = await launchBrowser({ headless: true });
const page = await browser.newPage();
await page.goto('https://example.com');
await page.click('#button');
await page.fill('#input', 'Hello');
const title = await page.title();
await browser.close();
// High-level test context with mesh integration
const mesh = createMesh({ name: 'test' });
const ctx = await createTestContext({
mesh,
baseUrl: 'http://localhost:3000'
});
await ctx.page.goto('/login');
// All browser actions emit mesh eventsFeatures
- Browser automation: Click, fill, navigate, screenshot
- Mesh integration: All actions emit observable events
- Script injection: Add init scripts, expose functions
- Network interception: Mock API responses
- Dialog handling: Auto-accept or customize dialog responses
API
// Page methods
await page.goto(url);
await page.click(selector);
await page.fill(selector, value);
await page.select(selector, value);
await page.waitForSelector(selector);
await page.evaluate(() => document.title);
await page.screenshot({ path: 'screenshot.png' });
// Network mocking
await page.route('**/api/*', (route) => {
route.fulfill({ status: 200, body: '{}' });
});License
MIT
