@webmcp/puppeteer
Version:
Puppeteer integration for webMCP - Headless Chrome automation with AI
86 lines (85 loc) • 2.38 kB
TypeScript
/**
* @webmcp/puppeteer - Puppeteer integration for webMCP
* Headless Chrome automation with AI-driven element detection
*/
import { Page, ElementHandle, LaunchOptions } from 'puppeteer';
export interface WebMCPPuppeteerConfig {
aiConfig?: {
apiKeys: {
openai?: string;
anthropic?: string;
google?: string;
};
defaultModel?: string;
};
optimizationLevel?: 'basic' | 'advanced' | 'premium';
puppeteerOptions?: LaunchOptions;
screenshotOnError?: boolean;
timeout?: number;
}
export declare class WebMCPPuppeteer {
private processor;
private aiClient?;
private config;
private webmcpData?;
private browser?;
private page?;
constructor(config?: WebMCPPuppeteerConfig);
/**
* Launch browser and create page
*/
launch(): Promise<Page>;
/**
* Navigate to URL
*/
goto(url: string): Promise<void>;
/**
* Scan current page and generate webMCP data
*/
scanPage(): Promise<any>;
/**
* Generate AI-driven test actions based on goal
*/
generateActions(goal: string): Promise<string[]>;
/**
* Execute webMCP-based actions
*/
executeActions(actions: string[]): Promise<void>;
/**
* Smart element interaction using webMCP names
*/
interactWith(elementName: string, action: string, value?: string): Promise<void>;
/**
* Get element by webMCP name
*/
getElement(elementName: string): Promise<ElementHandle<Element> | null>;
/**
* Wait for element to appear
*/
waitForElement(elementName: string, timeout?: number): Promise<void>;
/**
* Take screenshot of the page
*/
screenshot(path: string): Promise<void>;
/**
* Generate PDF of the page
*/
generatePDF(path: string): Promise<void>;
/**
* Evaluate JavaScript in page context
*/
evaluate<T>(fn: string | ((...args: any[]) => T), ...args: any[]): Promise<T>;
/**
* Get page performance metrics
*/
getPerformanceMetrics(): Promise<any>;
/**
* Close browser
*/
close(): Promise<void>;
private parseAIResponse;
private executeAction;
private extractElementName;
private extractValue;
}
export declare function createWebMCPPuppeteer(config?: WebMCPPuppeteerConfig): Promise<WebMCPPuppeteer>;